亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Matplotlab顯示OpenCV讀取到的圖像

 更新時間:2025年02月04日 09:29:42   作者:Return-Log  
本文介紹了如何使用OpenCV和Matplotlib處理圖像,本文通過實例講解的非常詳細,對Matplotlab?OpenCV圖像相關(guān)處理方法感興趣的朋友一起看看吧

一. 確認圖像的數(shù)組類型

在使用 OpenCV 的 cv2.imread() 函數(shù)讀取圖像時,第二個參數(shù)(標志)決定了圖像的讀取方式。具體來說,0、1 和 -1 分別對應(yīng)不同的讀取模式:

讀取模式標志
灰度cv2.IMREAD_GRAYSCALE0
彩色(忽略透明度通道)cv2.IMREAD_COLOR1
彩色(包括 Alpha 透明度通道,如果存在)cv2.IMREAD_UNCHANGED-1

這里不討論處理包含透明度通道的圖像

使用 img.shape 判斷圖像類型

在 OpenCV 中,當你使用 cv2.imread() 函數(shù)讀取一張圖像時,它會將圖像加載到內(nèi)存中,并將其存儲為一個 NumPy 數(shù)組。img.shape 是 NumPy 數(shù)組的一個屬性,它返回一個包含數(shù)組各維度大小的元組。通過檢查這個元組的長度(即維度的數(shù)量),我們可以確定數(shù)組的類型或結(jié)構(gòu)。

  • 灰度圖像:通常是一個二維數(shù)組,表示為 (height, width), img.shape 返回的元組長度為 2。
  • 彩色圖像:通常是一個三維數(shù)組,表示為 (height, width, channels), channels 表示顏色通道的數(shù)量(例如 RGB 圖像有三個通道,形狀通常是 (height, width, 3)), img.shape 返回的元組長度為 3。
# img 是一個 NumPy 數(shù)組
if len(img.shape) == 2:
    print("這是一個灰度圖像")
elif len(img.shape) == 3:
    print("這是一個彩色圖像")

二. 使用Matplotlab顯示

灰度圖像

plt.imshow(img, cmap='gray')

理解cmap='gray'

直接imshow 會使用默認的顏色映射(通常是 viridis),這通常不是期望的灰度效果。需要明確指定顏色映射 (cmap) 為 'gray',這樣可以確保圖像中的每個像素值都被正確地映射到灰度級別。

彩色圖像

OpenCV讀取到的色彩通道順序為BGR, Matplotlab讀取顯示的色彩通道為RGB,所以需要讀取時轉(zhuǎn)換通道

plt.imshow(img[:, :, ::-1])

理解 img[:, :, ::-1]

第一維和第二維分別代表圖像的高度和寬度,第三維有三個通道:紅(R)、綠(G)、藍(B)

  • : 表示選取所有元素。
  • ::-1 是Python中的切片語法,表示從尾到頭(逆序)選擇元素。這里的意圖通常是翻轉(zhuǎn)最后一個維度的數(shù)據(jù),比如將RGB格式轉(zhuǎn)換為BGR格式,或者相反。

到此這篇關(guān)于Matplotlab顯示OpenCV讀取到的圖像的文章就介紹到這了,更多相關(guān)Matplotlab OpenCV圖像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論