欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Matplotlab顯示OpenCV讀取到的圖像

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

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

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

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

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

使用 img.shape 判斷圖像類型

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

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

二. 使用Matplotlab顯示

灰度圖像

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

理解cmap='gray'

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

彩色圖像

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

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

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

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

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

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

相關(guān)文章

最新評(píng)論