OpenCV和matplotlib中的imshow


记录OpenCV中要注意的问题

文章目录

  • imshow()

imshow()


RGB用plt.imshow()显示,BGR用cv2.imshow()显示


import cv2
import matplotlib.pyplot as plt
# 采用cv2.imshow()显示的是BGR的图片,采用plt.imshow显示的是RGB的图片

# BGR转化为RGB
img = cv2.imread('MyLove.jpg')
b, g, r = cv2.split(img)  # 将通道拆分为BGR单通道,各个通道对应的是灰度值
img2 = cv2.merge([r, g, b])  # 将单通道合并为RGB多通道
# img2 = cv2.cvtColor(img , cv2.COLOR_BGR2RGB) # 能够达到相同的效果

# plt显示
plt.subplot(121)
plt.imshow(img)  # expects distorted color
plt.subplot(122)
plt.imshow(img2)  # expect true color
plt.show()

# cv2显示
cv2.imshow('bgr image', img)  # expects true color
cv2.imshow('rgb image', img2)  # expects distorted color
cv2.waitKey(0)
cv2.destroyAllWindows()

plt.imshow() 显示的BGR和RGB

OpenCV和matplotlib中的imshow_第1张图片

cv2.imshow() 显示的BGR为彩色(上图右边的),RGB为上图左边的图像


cv2.imshow()必须要有第一个窗口名称的参数,且与cv2.waitKey(0)组合使用,否则将无法显示图像


你可能感兴趣的:(opencv,python,opencv)