點贊 + 關注 + 收藏 = 學會了
推薦 《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 寬
即可。
點贊 + 關注 + 收藏 = 學會了