一種精度更高的hopf直線檢測策略, 一種高精度邊緣檢測方法.


#aaa是cv.read圖片.
img = aaaa.copy()
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)  
ret, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)

#cv2.imwrite("13裏面二值化的圖片.png", binary)   
# binary = cv2.morphologyEx(binary, cv2.MORPH_CLOSE, kernel, anchor=(2, 0), iterations=2)  # 二值化.
cv2.imwrite('debug1.png',binary)

# 可以看到處理後基本的文字方向.
#進行直線檢測.



edges = cv2.Canny(binary, 50, 100, apertureSize=3)
# 霍夫曼直線檢測
#cv2.imwrite('13裏面的canny邊緣化圖片.png',edges )
edges=255-binary  #========我這裏不適用canny來邊緣檢測,直接255減去他, 感覺精度更高.
gao=edges.shape[0]
chang=edges.shape[1]


cv2.imwrite('debug2.png',edges)

lines = cv2.HoughLinesP(edges, 0.1, 0.1*np.pi / 180, 1, minLineLength=(gao+chang)/100, maxLineGap=3)
                        #########0.01*pi是調優過的參數!!!!!!!!,我們只要比較長的線. 這些線更有標誌性.

這裏面我邊緣檢測使用了反色,255-. 這樣做完的邊緣檢測, 保證了邊緣的精度, 但是抗干擾能力變弱. 是這種好還是canny好, 可以自己測試. 如果圖像精度足夠, 推薦使用我這種邊緣檢測.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章