opencv中的圖像基本操作方法
訪問和修改圖像某像素點的值
函數
a=img[y,x] #獲取像素點的值
img[y,x]=b #修改像素點的值
實例
import cv2 as cv
import numpy as np
img = cv.imread('baby.png')
px = img[50,100]
print(px) # output:[76,94,94]
# 只獲取圖像藍色通道的值
img[50,100] = [0,0,255]
print(px) # output:[0,0,255]
獲取圖像屬性
獲取圖像形狀
height, width, channels = img.shape
獲取圖像的數據類型
img.dtype #圖像數據類型一般為uint8
獲取圖像總像素數
img.size # height x width x channels
ROI(Region of Interest)
講解ROI
ROI即感興趣區域。它是用來干什么的呢?舉個例子,我們想檢測人眼,這里有一張人的全身照。因為人的眼睛一定在人臉上,我們可以將ROI調整為人臉區域。這樣,在進行檢測時,檢測的范圍大大縮小,可以有效地提高程序的運行效率。
ROI實現
face = img[100:200,115:188]
通道分割與合並
彩色圖的BGR三個通道是可以分開單獨訪問的,也可以將三個單獨的通道合並成一幅圖像。分別使用 cv.split() 和 cv.merge()
b,g,r = cv.split(img)
img = cv.merge((b,g,r))
split() 函數比較耗時,我們可以使用索引來完成快速分割
b = img[ :, :, 0] #獲取圖像藍色通道