1
我必須找出圖像的輪廓。之後,我想了解如何在數字字符中填入洞,但不在其他空間中。圖像如下。正確填充圖像中的洞
http://i.stack.imgur.com/jlLYE.jpg
其實,如果它是不可能的,是有我在Java平臺上使用OpenCV的執行此圖像的分割任何其他方法?我希望圖像僅包含字符。謝謝。
http://i.stack.imgur.com/kY4Dh.png
我必須找出圖像的輪廓。之後,我想了解如何在數字字符中填入洞,但不在其他空間中。圖像如下。正確填充圖像中的洞
http://i.stack.imgur.com/jlLYE.jpg
其實,如果它是不可能的,是有我在Java平臺上使用OpenCV的執行此圖像的分割任何其他方法?我希望圖像僅包含字符。謝謝。
http://i.stack.imgur.com/kY4Dh.png
這裏有一個簡單的方法(但我不知道是否會工作無處不在測試它自己。)
注:代碼是在Python,我不這樣做的Java,我們對此深感抱歉即:(
import cv2 import numpy as np img = cv2.imread('test.png',0) ret, thresh = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU)
下面是限圖像:
現在,你可以嘗試兩種方法:
3A。 位數與3×3內核
解析度= cv2.medianBlur模糊(THRESH,3)
結果:
3b中。 3x1內核(垂直)侵蝕。 3x1,因爲圖像中的所有線條都更加水平。它有垂直線在其他的圖像,你可能需要採取的3x3內核(不知道。檢查它)
kernel = np.ones((3,1)) cls = cv2.erode(thresh, kernel)
如果你認爲你正在失去的數字有些部分還,你可以申請擴張侵蝕後,或用形態學開放功能取代所有東西。
結果:
最後,找到輪廓。它也會拾取預處理圖像中留下的一些噪音,但您可以通過檢查它們的寬高比,面積等來濾除它們。
我想知道如何找出閾值是127,因爲我有各種圖像,我需要有一般功能 – user3396727
答案修改。答覆修改。你在那裏通過0。大津會自動找到合適的閾值。 –