『OpenCV-Python』獲取圖片的基本引數資訊

德育处主任發表於2024-11-22

點贊 + 關注 + 收藏 = 學會了

推薦 《OpenCV-Python專欄》

在影像處理領域,瞭解影像的基本資訊是必不可少的第一步。

之前已經使用 cv2.imread() 方法將圖片讀取出來了。我們還可以使用 OpenCV 提供的一些方法去讀取圖片的尺寸、通道數、圖片畫素總數等資訊。

獲取圖片寬高和通道數

透過 shape 屬性可以直接獲取影像的維度資訊。

import cv2

# 讀取圖片
img = cv2.imread('德育處主任.jpeg')

# 獲取圖片的寬、高和通道數
height, width, channels = img.shape
print(f'圖片高度: {height}')
print(f'圖片寬度: {width}') 
print(f'圖片通道數: {channels}')

我讀取的是一張 1280x1280 的彩色影像。執行程式碼後,在終端會輸出以下內容。

圖片高度: 1280
圖片寬度: 1280
圖片通道數: 3

注意:如果圖片是灰度圖,shape 只有兩個值(高度和寬度),沒有通道數。

處理灰度圖的情況:

# 檢查是否為灰度圖
if len(image.shape) == 2:
    height, width = image.shape
    print("這是灰度圖")
else:
    height, width, channels = image.shape
    print("這是彩色圖")

獲取畫素資料型別

圖片的每個畫素都有一個資料型別,常見的資料型別包括 uint8(0-255)。可以透過 Numpy 的 dtype 屬性獲取。

# 獲取資料型別
pixel_dtype = img.dtype
print(f"畫素資料型別:{pixel_dtype}")

我的示例圖片是 uint8,所以輸出的結果是:

畫素資料型別:uint8

計算圖片大小(總畫素數)

透過寬度、高度和通道數,可以計算圖片的大小。用到的屬性是 size

# 計算總畫素數
total_pixels = img.size
print(f"圖片的總畫素數:{total_pixels}")

我的示例圖是 1280x1280 的彩色圖,每個畫素有3個通道。所以上面這段程式碼在終端會輸出:

圖片的總畫素數:4915200

1280 x 1280 x 3 = 4,915,200

如果需要計算單個通道的大小,只需用圖片的 長 x 寬 即可。


點贊 + 關注 + 收藏 = 學會了

相關文章