Python Pillow(PIL 第三方模块)和 cv2 (opencv第三方模块)对图片的 resize 操作 (缩放图片大小)
PIL 模块的 resize 操作:
1. 从文件中读取图片,然后 resize 大小:
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image img=Image.open(r"1.jpg")
print("原图的height,weight分别为:", np.asarray(img).shape[:2])
plt.imshow(np.asarray(img))
plt.show() height, weight = (np.asarray(img).shape)[:2]
height = height//10
weight = weight//10
img2 = Image.Image.resize(img, (weight, height))
print("resized后图的height,weight分别为:", np.asarray(img2).shape[:2])
plt.imshow(np.asarray(img2))
plt.show()


2. 从字节码(Bytes)中读取图片,然后 resize 大小:
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
from io import BytesIO img = open("1.jpg", "rb").read() #读取序列化的二进制码
img = BytesIO( img )
img = Image.open( img )
print("原图的height,weight分别为:", np.asarray(img).shape[:2])
plt.imshow(np.asarray(img))
plt.show() height, weight = (np.asarray(img).shape)[:2]
height = height//10
weight = weight//10
img2 = Image.Image.resize(img, (weight, height))
print("resized后图的height,weight分别为:", np.asarray(img2).shape[:2])
plt.imshow(np.asarray(img2))
plt.show()
---------------------------------------------------
CV2 模块的 resize 操作:
读入图像
使用函数cv2.imread()来读取图像。图像应该在工作目录中,或者应该给出图像的完整路径。
imread(filename[, flags]) -> retval
函数imread从指定文件加载图像并返回一个numpy.ndarray对象类型像素值。 如果图像无法读取(由于文件丢失,权限不当,格式不受支持或格式无效),函数返回一个空矩阵
第二个参数是一个标志,用于指定应读取图像的方式。
- cv2.IMREAD_COLOR:加载彩色图像。图像的任何透明度都将被忽略。这是默认标志。 flags=1
- cv2.IMREAD_GRAYSCALE:以灰度模式加载图像 flags=0
- cv2.IMREAD_UNCHANGED:加载包含Alpha通道的图像 flags=-1
注意
而不是这三个标志,你可以简单地传递整数1,0或-1。
取自于: https://blog.csdn.net/hubingshabi/article/details/80144706
CV2 读取图片, CV2展示图片:
import matplotlib.pyplot as plt
import numpy as np
import cv2
# rgb图
img=cv2.imread(r"1.jpg", 1)
# 灰度图
#img=cv2.imread(r"1.jpg", 0) print("原图的height,weight分别为:", np.asarray(img).shape[:2])
#plt.imshow(np.asarray(img))
#plt.show()
cv2.imshow("img", mat=img)
cv2.waitKey (0) height, weight = (img.shape)[:2]
height = height//3
weight = weight//3
img2 = cv2.resize(img, (weight, height))
print("resized后图的height,weight分别为:", img2.shape[:2])
#plt.imshow(np.asarray(img2))
#plt.show()
cv2.imshow("img2", mat=img2)
cv2.waitKey (0)
cv2.destroyAllWindows()
CV2 读取图片, matplotlib展示图片: 把cv2的bgr转换为rgb,然后展示。 [...,::-1]
import matplotlib.pyplot as plt
import numpy as np
import cv2
# rgb图
img=cv2.imread(r"1.jpg", 1)
# 灰度图
#img=cv2.imread(r"1.jpg", 0) print("原图的height,weight分别为:", np.asarray(img).shape[:2])
plt.imshow(np.asarray(img)[...,::-1])
plt.show() height, weight = (img.shape)[:2]
height = height//3
weight = weight//3
img2 = cv2.resize(img, (weight, height))
print("resized后图的height,weight分别为:", img2.shape[:2])
plt.imshow(np.asarray(img2)[...,::-1])
plt.show()
-----------------------------------------------------------------
参考网址:
https://blog.csdn.net/sinat_26917383/article/details/78559709
https://blog.csdn.net/hubingshabi/article/details/80144706
----------------------------

1.jpg
注:上面的代码均使用该图片(1.jpg)做测试。
--------------------------------
Python Pillow(PIL 第三方模块)和 cv2 (opencv第三方模块)对图片的 resize 操作 (缩放图片大小)的更多相关文章
- Python用Pillow(PIL)进行简单的图像操作
Python用Pillow(PIL)进行简单的图像操作 颜色与RGBA值 计算机通常将图像表示为RGB值,或者再加上alpha值(通透度,透明度),称为RGBA值.在Pillow中,RGBA的值表示为 ...
- python base64 编解码,转换成Opencv,PIL.Image图片格式
二进制打开图片文件,base64编解码,转成Opencv格式: # coding: utf-8 import base64 import numpy as np import cv2 img_file ...
- 图像处理基本工具——Python 环境下的 Pillow( PIL )
由于笔者近期的研究课题与图像后处理有关,需要通过图像处理工具对图像进行变换和处理,进而生成合适的训练图像数据.该系列文章即主要记录笔者在不同的环境下进行图像处理时常用的工具和库.在 Python 环境 ...
- python Pillow 图片处理模块,好强大有没有
python Pillow 图片处理模块,好强大有没有 Pillow 需要给 python 另外安装 第一个用法:https://www.cnblogs.com/ibingshan/p/1105739 ...
- 【Python】PIL模块
Python自建库,在爬虫等基础应用中更加简单好记,做整理以备自查. 目录 Image模块 open类.Save类.format类.Mode类.convert类.Size类.Info类.new类.Co ...
- ❤️【Python从入门到精通】(二十六)用Python的PIL库(Pillow)处理图像真的得心应手❤️
您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本篇重点介绍Python处理图像的标准库PIL库,处理图像真的的很方便. 干货满满,建议收藏,需要用到时常看看. 小伙伴们如有问题及需要,欢迎踊跃 ...
- 【python】import 模块、包、第三方模块
xx.py文件,称为模块(module),把不同模块归整到一起的文件夹,叫做包(package) 不同包下的模块可以重名,但是都不能和系统内建模块重名 包里面一定要有个__init__.py文件,否则 ...
- 使用Python的PIL模块来进行图片对比
使用Python的PIL模块来进行图片对比 在使用google或者baidu搜图的时候会发现有一个图片颜色选项,感觉非常有意思,有人可能会想这肯定是人为的去划分的,呵呵,有这种可能,但是估计人会累死, ...
- Python基础之模块:5、 第三方模块 requests模块 openpyxl模块
目录 一.第三方模块的下载与使用 1.什么是第三方模块 2.如何安装第三方模块 方式一:pip工具 方式二:pycharm中下载 3.注意事项 1.报错并有警告信息 2.报错,提示关键字 3.报错,无 ...
- python基础篇 13-模块的导入 安装第三方模块
一.模块 一个python文件就是一个模块 标准模块(内置模块) 第三方模块 需要自己安装的 自己写的 需要导入的 import 一个模块的实质: 实际上就是把一个py文件从头到尾执行了一遍,main ...
随机推荐
- java springboot 读取自定义配置文件
java springboot 读取自定义配置文件 application.properties.test.properties maven中引用 : <dependency> <g ...
- 编程语言界的丐帮 C#.NET FRAMEWORK 4.6 EF 连接MYSQL
1.nuget 引用 EntityFramework .和 MySql.Data.EntityFramework. EntityFramework 版本:6.4.4,MySql.Data.Entit ...
- 企业级私有仓库Harbor
仓库的概念也就是用于存储,docker仓库用于存储镜像. 镜像构建完成后,很容易可以在宿主机上运行,但是如果要在其他服务器上运行,则需要考虑镜像的分发,存储的问题. 共有/私有/仓库 Docker R ...
- Java格式化手机号和身份证号,中间使用星号*隐藏
Java格式化手机号和身份证号,中间使用星号*隐藏 package com.example.core.mydemo.java; /** * renterMobile=111****1198 * idN ...
- CNN --入门MNIST识别
Smiling & Weeping ---- 下次你撑伞低头看水洼, 就会想起我说雨是神的烟花. 简介:主要是看刘二大人的视频讲解:https://www.bilibili.com/video ...
- spring boot jpa 进行通用多条件动态查询和更新 接口
原因: jpa 没有类似于mybatis的那种 拼接sql的方式 想动态更新 需要使用 CriteriaUpdate的方式 去一直拼接,其实大多数场景只要传入一个非空实体类,去动态拼接sql 1.定义 ...
- docker中安装数据库mariadb
背景 一般情况下,我们直接拉取mysql的镜像即可.但是如果需要在centos的镜像里安装并启动mysql,那么这篇文章将会给你帮助. 既然可以在容器中安装mysql,本教程同样适用于CentOS中. ...
- 【vue】利用输入框搜索过滤来选择列表
方法1 <div id="app"> <input type="text" @input="handleInput()" ...
- Mysql 使用(一)
一.数据库的种类 关系型数据库 非关系型数据库 二.常见关系型数据库 oracle:在以前的大型项目中使用,银行,电信等项目 mysql:web时代使用最广泛的关系型数据库 ms sql server ...
- Node.js 的ORM(Sequelize) 的使用
Sequelize是一个Node.js 的ORM.什么是ORM呢?对象关系映射(Object Relational Mapping).什么意思?就是在编程语言中,很容易创建对象,如果在面向对象的语言中 ...