私にはイメージがあり、その中にいくつかの形があります。私はハフラインを使って線を検出しました。どのラインを並行して検出することができますか?デカルト座標におけるラインのPython openCVは平行線を検出します
7
A
答えて
13
式:
Y = K * X + B
二線Y = K1 * X + B1、Y = K2 * X + B2である平行、K1なら= k2。
したがって、検出された行ごとに係数kを計算する必要があります。 するためには
一意は、あなたがラインに属し二点の座標を知っておく必要がありますラインの方程式を識別する。 HoughLines(С++)と行を発見した後
:
vector<Vec2f> lines;
HoughLines(dst, lines, 1, CV_PI/180, 100, 0, 0);
あなたは極座標で検出された線のパラメータ(R、シータ)を格納するベクトル線を有します。あなたは、デカルト座標でそれらを転送する必要があります:C++でここ
例:
for(size_t i = 0; i < lines.size(); i++)
{
float rho = lines[i][0], theta = lines[i][1];
Point pt1, pt2;
double a = cos(theta), b = sin(theta);
double x0 = a*rho, y0 = b*rho;
pt1.x = cvRound(x0 + 1000*(-b)); //the first point
pt1.y = cvRound(y0 + 1000*(a)); //the first point
pt2.x = cvRound(x0 - 1000*(-b)); //the second point
pt2.y = cvRound(y0 - 1000*(a)); //the second point
}
あなたはその方程式を計算することができますラインのこれら2つの点を得た後。
1
HoughLinesは、結果を極座標で返します。それで、角度の2番目の値を確認してください。タグに記載されているように、これは、Pythonで行われている場合は不要あなたがhoughspace出力画像を提供houghlinesのscipyのダウンロード版を、使用することができ、Y、Xに
def findparallel(lines):
lines1 = []
for i in range(len(lines)):
for j in range(len(lines)):
if (i == j):continue
if (abs(lines[i][1] - lines[j][1]) == 0):
#You've found a parallel line!
lines1.append((i,j))
return lines1
関連する問題
- 1. 最長線検出 - のpython - OpenCVの
- 2. イメージ内の水平線を検出し、pythonとopencvを使ってy座標を取得する方法は?
- 3. PythonとOpenCV - 私の車線検出アルゴリズムを改善する
- 4. は、私は、このソースイメージを持っている水平線のためHoughLinesは(Pythonの、OpenCVの)を検出
- 5. Python OpenCV顔検出
- 6. OpenCV Pythonで画像から白い線を検出し、OpenCV Pythonでその座標を取得
- 7. python opencv - ブロブ検出または円検出
- 8. OpenCVのキャニーエッジ検出のPython
- 9. opencv-pythonオブジェクトの検出
- 10. Python OpenCV Sliding Windowオブジェクト検出
- 11. OpenCVは動きをPythonで検出します
- 12. PythonでOpenCVを使って画像内の線を検出する
- 13. Python OpenCVを使ってHoughLinesで画像の縦線と横線を検出する方法は?
- 14. OpenCV Hog人検出は縦線によってだまされますか?
- 15. Android、OpenCV:色を検出して輪郭線を描く
- 16. Opencv検出されたオブジェクトの平均色を取得
- 17. 検出されたブロブを塗りつぶします(OpenCV、Python)
- 18. opencv-pythonで星形を検出
- 19. OpenCV Hough Line Transformは存在しない水平線を与えます
- 20. OpenCVを使ってPythonで輪郭線を検出し描画する方法は?
- 21. Python - OpenCV - HoughCirclesによる円検出
- 22. OpenCV&Pythonでの瞳孔検出
- 23. Opencv Python 2.7の輪郭検出
- 24. OpencvはPythonで平行四辺形画像を切り取ります
- 25. ハールカスケード顔検出OpenCv
- 26. opencvとpythonによるfacedetectionは、目の領域のみを検出します
- 27. Python OpenCV - 目を検出して保存する
- 28. OpenCV TextBox検出
- 29. OpenCVスキン検出
- 30. OpenCV Pythonで赤色を検出するには?
を変換しないために:]ここを参照してください(のhttp:/ /scikit-image.org/docs/dev/auto_examples/plot_line_hough_transform.html)。おそらく、シータが従属軸になるように、独立軸(thetaまたは 'X')と従属軸(rhoまたは 'Y')を反転させることができます。このHough空間画像を閾値処理した後(最も可能性の高い線に対応する(ρ、θ)の最も強いスポットを得るために)、データに水平線を当てはめることができる:theta = constant(y = mx + b )。 – chase