Python opencv findContours報錯
阿新 • • 發佈:2018-12-24
在剛開始使用opencv python 的時候,出現了不少的問題。現在來總結一下遇到的問題以及其解決方法
一開始,出現了這個問題:
FindContours supports only CV_8UC1 images
對於這個問題,應該就是圖片的格式的問題,但是我是打算使用的是從神經網路裡面輸出的掩膜,而且我也不太熟悉,也不知道該怎麼弄,發現網上的人並沒有很多解決這個問題的方法,所以我就嘗試去使用cvtcolor來轉化一下看看行不行
但是當我使用了cvtColor的時候,我又發現問題了:
only size-1 arrays can be converted to Python scalars
對於這個問題就應該是資料的格式的問題了,但是我要處理的是我的網路的輸出結果啊??網上面也沒有太多解決這個問題的方法
最後我就用了一個非常笨的方法來解決這個問題了×(有時間在看看怎麼樣解決吧,公司專案不能拖太久==)
首先,我把這個掩膜按照圖片輸出
cv2.imwrite(os.path.join(BIT_OUT,name),mask.astype(np.uint8))
按照圖片輸出了以後,就可以按照網上的普遍的方法來處理了
img = cv2.imread(os.path.join(BIT_OUT, each_small)) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) ret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) image, contours, hierarchy = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
我必須承認。這是一個很笨的方法