opencv和numpy以及pillow处理图片时数据各个维度的布局是怎样的
opencv和numpy以及pillow处理图片时数据各个维度的布局是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的万源网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
opencv读取图片时,读取后转为numpy数组的格式是(height, width, channels). pillow第三方库读取图片后数据的格式是(width, height). 使用numpy库读取格式为(width, height)的pillow的图片后, 数据的格式自动转为(height, width, channels) pillow从维度为(height, width, channels)的numpy数据后, 自动将维度调整为(width, height).
代码实验展示:
from PIL import Imageimport cv2import numpy as npif __name__ == '__main__':print()print('测试opencv-python读取图片的格式'.center(50,'-'))img_cv2 = cv2.imread('bryant.jpg', 1) # 读取图片文件img_cv2 = np.float32(img_cv2) / 255 # 转为float32类型print('opencv-python的图片读取格式:(height, width, channels)',img_cv2.shape) # opencv-python的图片读取格式:(height, width, channels) (667, 1000, 3)print()print('测试Python第三方库Pillow读取图片的格式'.center(50,'-'))img_PIL = Image.open("bryant.jpg")print(img_PIL.format, img_PIL.size, img_PIL.mode) # JPEG (1000, 667) RGBprint('图片的宽度:', img_PIL.width, '图片的高度:', img_PIL.height) # 图片的宽度: 1000 图片的高度: 667print()print('测试Python第三方库NumPy处理PIL图片的方式'.center(50,'-'))imgNumPy_from_PIL = np.array(img_PIL)print('imgNumPy的形状是:', imgNumPy_from_PIL.shape) # imgNumPy的形状是: (667, 1000, 3)print('NumPy处理PIL图片的方式:(height, width, channels)',imgNumPy_from_PIL.shape) # NumPy处理PIL图片的方式:(height, width, channels) (667, 1000, 3) print()print('测试Python第三方库Pillow读取NumPy数据的格式'.center(50,'-'))mg_PIL_from_Numpy = Image.fromarray(imgNumPy_from_PIL)print(mg_PIL_from_Numpy.format, mg_PIL_from_Numpy.size, mg_PIL_from_Numpy.mode) # None (1000, 667) RGBprint('图片的宽度:', mg_PIL_from_Numpy.width, '图片的高度:', mg_PIL_from_Numpy.height) # 图片的宽度: 1000 图片的高度: 667mg_PIL_from_Numpy.show() img_PIL.show()
控制台输出结果:
Windows PowerShell 版权所有 (C) Microsoft Corporation。保留所有权利。 尝试新的跨平台 PowerShell https://aka.ms/pscore6 加载个人及系统配置文件用了 891 毫秒。 (base) PS C:\Users\chenxuqi\Desktop\News4cxq\test4cxq> & 'D:\Anaconda3\envs\ssd4pytorch2_2_0\python.exe' 'c:\Users\chenxuqi\.vscode\extensions\ms-python.python-2021.1.502429796\pythonFiles\lib\python\debugpy\launcher' '61922' '--' 'c:\Users\chenxuqi\Desktop\News4cxq\test4cxq\test.py' --------------测试opencv-python读取图片的格式-------------- opencv-python的图片读取格式:(height, width, channels) (667, 1000, 3) ------------测试Python第三方库Pillow读取图片的格式------------- JPEG (1000, 667) RGB 图片的宽度: 1000 图片的高度: 667 -----------测试Python第三方库NumPy处理PIL图片的方式------------ imgNumPy的形状是: (667, 1000, 3) NumPy处理PIL图片的方式:(height, width, channels) (667, 1000, 3) ----------测试Python第三方库Pillow读取NumPy数据的格式---------- None (1000, 667) RGB 图片的宽度: 1000 图片的高度: 667 (base) PS C:\Users\chenxuqi\Desktop\News4cxq\test4cxq> conda activate ssd4pytorch2_2_0 (ssd4pytorch2_2_0) PS C:\Users\chenxuqi\Desktop\News4cxq\test4cxq>
使用的原图:bryant.jpg:
运行结果展示:
关于opencv和numpy以及pillow处理图片时数据各个维度的布局是怎样的问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。
当前文章:opencv和numpy以及pillow处理图片时数据各个维度的布局是怎样的
路径分享:http://myzitong.com/article/ppcggs.html