日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

OpenCV-Python學(xué)習(xí)筆記(一):圖像讀入、顯示、保存,BGR模式轉(zhuǎn)

系統(tǒng) 1772 0

使用OpenCV-Python實現(xiàn)圖像讀入、顯示與保存:

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

import cv2
from matplotlib import pyplot as plt

# # 第二個參數(shù),0為灰度模式顯示,1為彩色圖像,默認(rèn)值為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模式。所以彩色圖像如果已經(jīng)被 OpenCV 讀入,那它將不會被 Matplotib 正確顯示。如下圖所示,同一幅彩色圖像,由OpenCV讀入,左邊圖像由cv2.imshow()函數(shù)顯示,為正常顏色;右邊圖像調(diào)用Matplotib的函數(shù)顯示,顏色明顯不對。

OpenCV-Python學(xué)習(xí)筆記(一):圖像讀入、顯示、保存,BGR模式轉(zhuǎn)RGB模式_第1張圖片 OpenCV-Python學(xué)習(xí)筆記(一):圖像讀入、顯示、保存,BGR模式轉(zhuǎn)RGB模式_第2張圖片

由于很多時候要用到matplotlib操作圖像,因此就需要解決 彩色圖像由BGR模式轉(zhuǎn)RGB模式 的問題。在網(wǎng)上搜索了下,找到以下幾種解決方法:

# 方法一
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)

下面的代碼應(yīng)用以上方法,做出驗證:

            
              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)

# 調(diào)用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學(xué)習(xí)筆記(一):圖像讀入、顯示、保存,BGR模式轉(zhuǎn)RGB模式_第3張圖片

由上圖可知,三種方法都可以解決 彩色圖像由BGR模式轉(zhuǎn)RGB模式的問題。

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

(注:原圖像來源于網(wǎng)絡(luò),侵刪)

?


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 黔江区| 天水市| 都江堰市| 桐庐县| 光泽县| 江西省| 凌海市| 苏尼特右旗| 巨野县| 沂源县| 封丘县| 南乐县| 冀州市| 河东区| 通化县| 民勤县| 农安县| 黑水县| 扬中市| 大英县| 马边| 长寿区| 门源| 公安县| 昌江| 东乡| 马边| 宝鸡市| 宣武区| 抚松县| 常熟市| 顺义区| 长顺县| 东方市| 镇原县| 微山县| 滦南县| 玉门市| 将乐县| 新源县| 西和县|