2017-11-21 11 views
-2

Opencvの "cv2.HoughLines"を使ってイメージ内の行を検出することができました。しかし、私は、RHTがHTよりも優れた性能を発揮していると、文献レビューでopencv pythonを使って行を検出するために、Randomized Hough Transformを実装する方法を知りたいと思っています。誰でも助けてくれますか?どのように線を検出するランダムなハフ変換を実装するには?

これは私がenter image description here

は、次のコード

lines = cv2.HoughLines(imgray, 1, np.pi/180, 300) 
for rho, theta in lines[0]: 
a = np.cos(theta) 
b = np.sin(theta) 
x0 = a * rho 
y0 = b * rho 
x1 = int(x0 + 1000 * (-b)) 
y1 = int(y0 + 1000 * (a)) 
x2 = int(x0 - 1000 * (-b)) 
y2 = int(y0 - 1000 * (a)) 

cv2.line(imgray, (x1, y1), (x2, y2), (0, 0, 255), 2) 

を使用した後、私は次のような結果 enter image description here

+0

、このような複雑なアルゴリズムを実装する方法をあなたに教える方法このコミュニティの範囲を超えています。それはあなた自身で学ばなければならないことです。私はいくつかのソースコードと論文をオンラインで見つけることができると確信しています。あなたは途中で小さなステップで助けを求めるかもしれませんが、誰もここに200ページを書きません。 – Piglet

+0

1つだけでなく複数の行が検出されるのですか? – annie

+0

あなたはおそらく2つ以上の行を検出するでしょうが、少なくともあなたのコードでは、cv2.lineの呼び出しがループの外側にあるので、あなたのコードは1行しか描画しません。 – Piglet

答えて

0

代わりに変換probabalisticハフを使用してくださいを持っているイメージです。

https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_houghlines/py_houghlines.html

+0

probabalistic hough変換はRHTと異なります。 – annie

+0

@annieだからこそ私は代わりに 'と書いています。パフォーマンスは向上し、何も実装する必要はありません。少なくともRHTはprobabalistic HTですが、それは逆に真実ではないかもしれません。それはより速いです。私は両方のベンチマークを見たことがない、おそらくあなたは1つを作成することができますか? ':) – Piglet

+0

thankyou @piglet – annie

関連する問題