OpenCV-Python学习笔记(一):图像读入、显示、保存,BGR模式转

系统 1480 0

使用OpenCV-Python实现图像读入、显示与保存:

            
              # -*- coding: utf-8 -*-

import cv2
from matplotlib import pyplot as plt

# # 第二个参数,0为灰度模式显示,1为彩色图像,默认值为1
# img0 = cv2.imread(r'D:\OpenCV_Python\chepai.jpg', 0)
# img1 = cv2.imread(r'D:\OpenCV_Python\chepai.jpg', 1)
# 或者如下:
img0 = cv2.imread(r'D:\OpenCV_Python\chepai.jpg', cv2.IMREAD_GRAYSCALE)
img1 = cv2.imread(r'D:\OpenCV_Python\chepai.jpg', cv2.IMREAD_COLOR)

# using opencv to show image
cv2.imshow('grayImage', img0)
cv2.imshow('bgrImage', img1)

k = cv2.waitKey(0)
if k == 27:         # wait for Esc key to exit
    cv2.destroyAllWindows()
elif k == ord('s'):
    cv2.imwrite('chepai_grayimage.jpg', img0)   # wait for 's' key to save and exit
    cv2.destroyAllWindows()

# using matplotlib to show image
# plt.imshow(img0, cmap='gray', interpolation='bicubic')
# plt.xticks([]), plt.yticks([])   # to hide tick values on X and Y axis
# plt.show()
            
          

注意: OpenCV 加载的彩色图像是 BGR 模式,但 Matplotib 是 RGB模式。所以彩色图像如果已经被 OpenCV 读入,那它将不会被 Matplotib 正确显示。如下图所示,同一幅彩色图像,由OpenCV读入,左边图像由cv2.imshow()函数显示,为正常颜色;右边图像调用Matplotib的函数显示,颜色明显不对。

OpenCV-Python学习笔记(一):图像读入、显示、保存,BGR模式转RGB模式_第1张图片 OpenCV-Python学习笔记(一):图像读入、显示、保存,BGR模式转RGB模式_第2张图片

由于很多时候要用到matplotlib操作图像,因此就需要解决 彩色图像由BGR模式转RGB模式 的问题。在网上搜索了下,找到以下几种解决方法:

# 方法一
b, g, r = cv2.split(img)
img1 = cv2.merge([r, g, b])

# 方法二
img2 = img[:, :, :: -1]   或者   img2 = img[..., :: -1]

# 方法三
img3 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

下面的代码应用以上方法,做出验证:

            
              import cv2
from matplotlib import pyplot as plt

# 由OpenCV读入彩色图像
img = cv2.imread(r'D:\OpenCV_Python\chepai.jpg')

# 方法一
b, g, r = cv2.split(img)
img1 = cv2.merge([r, g, b])

# 方法二
img2 = img[:, :, :: -1]
# img2 = img[..., :: -1]

# 方法三
img3 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# 调用matplotlib显示
plt.subplot(221); plt.imshow(img)
plt.subplot(222); plt.imshow(img1)
plt.subplot(223); plt.imshow(img2)
plt.subplot(224); plt.imshow(img3)
plt.show()

            
          

OpenCV-Python学习笔记(一):图像读入、显示、保存,BGR模式转RGB模式_第3张图片

由上图可知,三种方法都可以解决 彩色图像由BGR模式转RGB模式的问题。

参考文献:https://stackoverflow.com/questions/15072736/extracting-a-region-from-an-image-using-slicing-in-python-opencv/15074748#15074748

(注:原图像来源于网络,侵删)

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论