我正在分析圖像以查找圖像中的棕色物體。我爲圖像設定閾值,並將最黑暗的部分視爲棕色細胞。然而,取決於圖像的質量有時不能被識別。 OpenCV Python有沒有解決這個問題的方法,例如預處理灰度圖像並定義該特定圖像的棕色方法?使用opencv處理不同質量的圖像
,我使用發現褐色小點的代碼如下:
def countBrownDots(imageFile): im = cv2.imread(imageFile) #changing color space gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY) gray = increaseBrighntness(gray) l1,thresh = cv2.threshold(gray,10,255,cv2.THRESH_BINARY_INV) thresh = ndimage.gaussian_filter(thresh, 16) l2,thresh = cv2.threshold(thresh,70,255,cv2.THRESH_BINARY) thresh = ndimage.gaussian_filter(thresh, 16) cv2.imshow("thresh22",thresh) rmax = pymorph.regmax(thresh) nim = pymorph.overlay(thresh, rmax) seeds,nr_nuclei = ndimage.label(rmax) cv2.imshow("original",im) cv2.imshow("browns",nim)
這裏是一個輸入圖像例如:
你好,首先你應該看看HSV空間,在這個空間找到特定的顏色更容易。其次,你應該展示你的問題的圖像,以幫助我們理解問題。 – biquette 2014-09-03 12:25:04
圖片在這裏:http://i.stack.imgur.com/vmjqu.jpg – 2014-09-03 12:41:59
基於biquette的說法,你也應該建立一個直方圖出Hue圖像,看看是否拍攝圖像區域在給定範圍內的色調值已經可以解決問題。注意:有時你可以通過查找所有不是你正在尋找的東西來解決問題。 – Antonio 2014-09-03 12:48:20