方法一:使用輪廓
步驟1
"""src為原圖"""ROI = np.zeros(src.shape, np.uint8) #感興趣區(qū)域ROIproimage = src.copy() #復(fù)制原圖"""提取輪廓""" proimage=cv2.cvtColor(proimage,cv2.COLOR_BGR2GRAY) #轉(zhuǎn)換成灰度圖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區(qū)域填充白色,輪廓ID1ROI=cv2.cvtColor(ROI,cv2.COLOR_BGR2GRAY) #轉(zhuǎn)換成灰度圖ROI=cv2.adaptiveThreshold(ROI,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY_INV,7,7) #自適應(yīng)閾值化imgroi= cv2.bitwise_and(ROI,proimage) #圖像交運算 ,獲取的是原圖處理——提取輪廓后的ROI2.#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感興趣區(qū)域ROI提取方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答