方法一:使用輪廓
步驟1
"""src為原圖"""
ROI = np.zeros(src.shape, np.uint8) #感興趣區域ROI
proimage = src.copy() #復制原圖
"""提取輪廓"""
proimage=cv2.cvtColor(proimage,cv2.COLOR_BGR2GRAY) #轉換成灰度圖
proimage=cv2.adaptiveThreshold(proimage,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY_INV,7,7)
proimage,contours,hierarchy=cv2.findContours(proimage,cv2.RETR_CCOMP,cv2.CHAIN_APPROX_NONE) #提取所有的輪廓
步驟2
"""ROI提取"""
cv2.drawContours(ROI, contours, 1,(255,255,255),-1) #ROI區域填充白色,輪廓ID1
ROI=cv2.cvtColor(ROI,cv2.COLOR_BGR2GRAY) #轉換成灰度圖
ROI=cv2.adaptiveThreshold(ROI,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY_INV,7,7) #自適應閾值化
imgroi= cv2.bitwise_and(ROI,proimage) #圖像交運算 ,獲取的是原圖處理——提取輪廓后的ROI
2.#imgroi = cv2.bitwise_and(src,src,mask=ROI)
3.#imgroi = ROI & src 無需灰度+閾值,獲取的是原圖中的ROI
方法二
img1 = cv2.imread('roi.jpg')
roi = img1[0:rows, 0:cols ]
以上這篇Python+OpenCV感興趣區域ROI提取方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持我們。
本文標題: Python+OpenCV感興趣區域ROI提取方法
本文地址: http://www.cppcns.com/jiaoben/python/249654.html