我按照一些代碼進行簡單的文本識別(從如何檢測圖像中的單獨數字?但是,它不斷在我的字母中添加附加輪廓,例如e中的循環。使用的代碼是:我試圖解決這個問題的嘗試是測試上一次迭代中的重疊輪廓。但是在標記每個輪廓后,我注意到它們是從最低的y點到最高的y點創建的,如[輸出][1]所示。去除內部輪廓的最簡單方法是什么?我見過許多線程引用RETR_EXTERNAL(已經在使用)調用和層次結構,但我不明白它們如何適用于此代碼。
1 回答

慕沐林林
TA貢獻2016條經驗 獲得超9個贊
你有沒有檢查過你的輪廓是什么樣子的?使用多個矩形的原因是,您的字母或精明的邊緣或輪廓變得脫節,因此,中的每個字母都有多個分量。我建議如下:cnts
打印精明的邊緣,并檢查它們是否按字母連接。
cv2.imshow("canny", canny)
根據您上面看到的內容,您可以更改模糊內核大小以連接斷開連接的字母組件,
blurred = cv2.GaussianBlur(gray, (9, 9), 0)
或使用邊緣檢測參數(更低的最小值或更大的光圈)。
canny = cv2.Canny(blurred, 80, 255, 3)
您還可以應用一些形態學操作來連接斷開連接的字母組件,即擴張或閉合。
kernel = np.ones((5,5),np.uint8) closing = cv2.morphologyEx(canny, cv2.MORPH_CLOSE, kernel)
添加回答
舉報
0/150
提交
取消