Python Pillow(PIL 第三方模块)和 cv2 (opencv第三方模块)对图片的 resize 操作 (缩放图片大小)(python怎么读)

网友投稿 455 2022-09-03


Python Pillow(PIL 第三方模块)和 cv2 (opencv第三方模块)对图片的 resize 操作 (缩放图片大小)(python怎么读)

PIL 模块的 resize  操作:

1.  从文件中读取图片,然后  resize  大小:

import matplotlib.pyplot as pltimport numpy as npfrom PIL import Imageimg=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//10weight = weight//10img2 = 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 pltimport numpy as npfrom PIL import Imagefrom io import BytesIOimg = 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//10weight = weight//10img2 = 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=1cv2.IMREAD_GRAYSCALE:以灰度模式加载图像 flags=0cv2.IMREAD_UNCHANGED:加载包含Alpha通道的图像 flags=-1

注意

而不是这三个标志,你可以简单地传递整数1,0或-1。

CV2 读取图片,  CV2展示图片:

import matplotlib.pyplot as pltimport numpy as npimport 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//3weight = weight//3img2 = 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 pltimport numpy as npimport 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//3weight = weight//3img2 = cv2.resize(img, (weight, height))print("resized后图的height,weight分别为:", img2.shape[:2])plt.imshow(np.asarray(img2)[...,::-1])plt.show()

1.jpg

注:上面的代码均使用该图片(1.jpg)做测试。

--------------------------------


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:区块链共识机制 —— PoW共识的Python实现(区块链共识机制的主要作用不是确保)
下一篇:python 库 Numpy 中如何求取向量范数 np.linalg.norm(求范数)(向量的第二范数为传统意义上的向量长度),(如何求取向量的单位向量)(python怎么读)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~