簡體   English   中英

霍夫變換檢測較短的線

[英]Hough transform detect shorter lines

我使用 opencv hough 變換來嘗試檢測形狀。 使用 HoughLines 方法可以很好地檢測到較長的線條。但較短的線條被完全忽略。 有沒有辦法也檢測較短的線?

我正在使用的代碼在這個頁面上有描述http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_imgproc/py_houghlines/py_houghlines.html

我對房子的角落等線條更感興趣。我應該修改哪個參數來使用霍夫變換來做到這一點? 或者有沒有我應該考慮的不同算法

Hough 變換與 OpenCV python 教程

在您提供的鏈接上查看HoughLinesP

import cv2
import numpy as np

img = cv2.imread('beach.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 50, 150, apertureSize=3)
minLineLength = 100
maxLineGap = 5
lines = cv2.HoughLinesP(edges, 1, np.pi/180, 50, minLineLength, maxLineGap)
for x1, y1, x2, y2 in lines[0]:
    cv2.line(img, (x1, y1), (x2, y2), (0, 255, 0), 2)
cv2.imwrite('canny5.jpg', edges)
cv2.imwrite('houghlines5.jpg', img)

另請查看從 Canny 生成的邊緣圖像。 您應該只能找到邊緣圖像中存在線條的線條。

在此處輸入圖片說明

這是覆蓋在圖像上的線檢測輸出:在此處輸入圖片說明

使用變量minLineLengthmaxLineGap來獲得更理想的輸出。 這種方法也不會像 HoughLines 那樣給你長線,但是看看 Canny 圖像,也許那些長線一開始就不受歡迎。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM