ちょくせんけんしゅつ
Huff変換
ちょくせんけんしゅつ
2 Dイメージ座標の直線方程式をパラメータ空間に変換し、直線を検索します.
シナリオの蓄積
直線成分と相関元素値をそれぞれ1ずつ増加
私たちは写真で変化の過程を表現します.
直線方程式(y=ax+b)問題
y軸に平行な垂直線をうまく表現できないので,極座標系直線の方程式を用いる.
*aは3ダース
xcosa+ysina=pをパラメータ空間に変換
セグメント検出
image:エッジビデオの入力
rho:蓄積アレイでrho値で1.0->1ピクセル間隔
theta:蓄積配列において、theta値の間隔でnp.pi/180->1度間隔
threshold:蓄積アレイ内の直線を判断するためのしきい値
lines:直線パラメータ(rho,theta)情報を含むnumpy.ndarray.shape=(N,1,2).dtype=numpy.float32.
srn,stn:マルチスケールhuff変換でrho解像度とtheta解像度の値をデフォルト値で0で割った場合、従来のhuff変換が実行されます
min theta,max theta:検出する線分の最大最小theta値
検出確率Huff変換線分
image:エッジビデオの入力
rho:アレイ内のrho値の間隔を蓄積します.(e.g.)1.01画素間隔.
theta:配列内のtheta値の間隔を蓄積します.(e.g.) np.pi/1801°間隔.
threshold:蓄積配列から直線と判断されるしきい値
lines:線分の始点座標と終点座標(x 1、y 1、x 2、y 2)情報を含むnumpy.ndarray.shape=(N, 1, 4). dtype=numpy.int32.
minLineLength:検出する線分の最小長さ
maxLineGap:直線とみなされる最大エッジポイント間隔
src = cv2.imread('building.jpg', cv2.IMREAD_GRAYSCALE)
edges = cv2.Canny(src, 50, 150)
lines = cv2.HoughLinesP(edges, 1.0, np.pi / 180., 160,
minLineLength=50, maxLineGap=5)
dst = cv2.cvtColor(edges, cv2.COLOR_GRAY2BGR)
if lines is not None:
for i in range(lines.shape[0]):
pt1 = (lines[i][0][0], lines[i][0][1]) # 시작점 좌표
pt2 = (lines[i][0][2], lines[i][0][3]) # 끝점 좌표
cv2.line(dst, pt1, pt2, (0, 0, 255), 2, cv2.LINE_AA)
Reference
この問題について(ちょくせんけんしゅつ), 我々は、より多くの情報をここで見つけました https://velog.io/@qsdcfd/직선-검출テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol