在进行图像处理时,我们常常依赖opencv这一强大工具。然而,有趣的是,当我们使用opencv读取图像时,得到的数组却是bgr格式,而不是我们更为常见的rgb格式。这究竟是为什么呢?这个问题值得我们深思。
作者/编辑 汤兴旺
我们通过OpenCV和PIL读取同一张图片,并对比其结果:
OpenCV读取图片:
import cv2 filename="/home/tangxingwang/01.jpeg" img = cv2.imread(filename) print(img)
PIL读取图片:
import numpy as np from PIL import Image filename="/home/tangxingwang/01.jpeg" img=Image.open(filename) img_arr=np.array(img) print(img_arr)
通过上述对比,我们可以清楚地看到OpenCV读取的图片格式与PIL不同,前者是BGR格式,后者是RGB格式。那么,为什么会这样呢?
解答:OpenCV于1999年由Intel创建,当时主流的摄像头制造商和软件供应商提供的图像采集格式是BGR。此外,位图BMP是最简单的图像格式,也是Windows显示图片的基本格式,其文件扩展名为*.BMP。在Windows系统中,任何格式的图片文件(包括视频播放)都需要转换为位图才能显示,而位图BMP的格式正是BGR。由于BGR在当时被广泛使用,OpenCV的早期开发者便选择了BGR颜色格式,这一选择一直沿用至今,成为了一种标准。
思考
今天的问题就讨论到这里了,希望能解答您心中的疑惑。如果您在学习深度学习的过程中遇到其他有趣且不解的问题,欢迎留言,说不定下一问就能解答您的问题呢?
以上就是【AI-1000问】为什么OpenCV读取的图像格式是BGR?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号