opencv 圖像基本操作 獲取圖像大小、ROI操作、通道分割與合並等


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] #獲取圖像藍色通道


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM