使用OpenCV加载图像时,默认使用BGR的格式,而使用matplotlib显示图像时又采用RGB的格式,因此显示图像时,会显得非常奇怪。

如以一张船的照片为例,原图如下:

在这里插入图片描述
使用OpenCV进行读取:

import cv2
import matplotlib.pyplot as plt
import numpy as np
ship_BGR = cv2.imread('ship.jpg',cv2.IMREAD_COLOR)  # 第二个参数可以不写,默认值就是以彩色图像方式读取
plt.imshow(ship_BGR)
plt.show()

输出的图像结果:

在这里插入图片描述
可以很容易发现,这和原图的颜色差的非常多,这一切原因都在于读取channel的顺序,因此需要改变channel顺序。

方法一

ship_RGB_1 = ship_BGR[:,:,::-1]  # BGR和RGB正好是顺逆序关系
plt.imshow(ship_RGB_1)
plt.show()

输出的图像结果:

在这里插入图片描述

方法二

ship_RGB_2 = cv2.cvtColor(ship_BGR, cv2.COLOR_BGR2RGB)
plt.imshow(ship_RGB_2)
plt.show()

输出的图像结果:

在这里插入图片描述
以上两种方法均适用于BGR图像转换为RGB图像,小伙伴们可根据自己的喜好各取所需。

GitHub 加速计划 / opencv31 / opencv
238
21
下载
OpenCV: 开源计算机视觉库
最近提交(Master分支:4 个月前 )
b229f1ef core: add NEON support for cvFloor in fast_math.hpp #28243 - This PR adds NEON intrinsics-based implementation for the cvFloor function in fast_math.hpp for Windows-ARM64. - Both float and double overloads now use NEON intrinsics for cvFloor Function. - calchist and calchist1d function uses cvFloor function for its computations. - After adding these changes both functions showed improvement in performance. **Performance Benchmarks:** <img width="956" height="273" alt="image" src="https://github.com/user-attachments/assets/a00c98cd-d245-4d11-a9fd-361a3bd89f59" /> See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request - [x] I agree to contribute to the project under Apache 2 License. - [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV - [x] The PR is proposed to the proper branch 9 小时前
1d20b65f Optimized Bilateral Filter (32f) with AVX512 9 小时前
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐