博客 / 詳情

返回

『OpenCV-Python』獲取圖片的基本參數信息

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

推薦 《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 寬 即可。


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

user avatar huanjinliu 頭像
1 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.