2

ライン検出私は現在、このタイプの画像にライン検出を実行しようとしてい

上部と下部の黒いバーは、ちょうど私が写真を撮った場所に起因するものであるOriginal picture taken from my phone

サイズ変更などに起因するものではありません。

私は、次のコードを使用:

image = cv2.imread('test_2.jpg') 
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 
edges = cv2.Canny(gray, 100, 250) 
lines = cv2.HoughLinesP(edges, 1, np.pi/180, 25, minLineLength=100, maxLineGap=50) 

hough = np.zeros(image.shape, np.uint8) 

for line in lines: 
    x1, y1, x2, y2 = line[0] 
    cv2.line(hough, (x1, y1), (x2, y2), (255, 255, 255), 2) 

cv2.imwrite('hough.jpg', hough) 

をそして私は最後に、これらの行だ:

hough.jpg

を、私はそれが私を助けるだろう使用することができます任意の概念はありますか?

私はCannyHoughLinesPコールに異なるパラメータを変更しようとしましたが、それは役に立たないようです。

編集:画像のすべての線を検出しようとしています。 3本の水平線だけでなく、すべての垂直線(交差または水平線のすぐ上)および斜めの線。 私の主な問題は、いくつかの垂直線が現れていないことです。すべての線には、1つではなく2つの線があります。 私は二重線の問題に簡単に対処できると思うが、私は欠けている線にどう対処するか分からない。

+0

結果としてあなたが望むものは教えてくれませんでした。 –

+0

申し訳ありませんが、それは私には明らかでした。私はそれを説明するために自分の投稿を編集しました。 –

答えて

1

ハフはエッジを探しており、代わりにリッジがあります。これは二重線について説明します。

画像が二値化されやすいので、エッジ間引きを試すことができます。線分を推測できる素敵で連続的なピクセルのストレッチが得られます。しかし、長い線が交差するものを「修復」する必要があるかもしれません。

enter image description here

+0

ありがとうございます、私はどのような線間引きであるか見てみましょう。 –

+0

@ Yves Daoust上記画像のコードはありますか? – Link

+1

@Link:申し訳ありませんが、これは市販のソフトウェアで作成されました。ここでは、間引きの実装を見つけることができます:https://github.com/erich666/GraphicsGems/blob/master/gemsiv/thin_image.c –

関連する問題