このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
hough
ハフ変換
説明
[
はバイナリ イメージ H
,theta
,rho
] = hough(BW
)BW
の標準的なハフ変換 (SHT) を計算します。関数 hough
はラインを検出するように設計されています。関数はラインのパラメトリック表現 rho = x*cos(theta) + y*sin(theta)
を使用します。この関数は、ラインに垂直なベクトルに沿った原点からラインまでの距離 rho
と x 軸とこのベクトルとの間の角度 theta
(度単位) を返します。また、この関数は、行と列がそれぞれ rho と theta の値に対応するパラメーター空間行列になる、SHT H
を返します。詳細については、アルゴリズムを参照してください。
例
入力引数
出力引数
アルゴリズム
標準的なハフ変換 (SHT) はラインのパラメトリック表現を使用します。
rho = x*cos(theta) + y*sin(theta)
座標系の原点は、左上隅のピクセルの中心にあると仮定されます。
変数 "rho" は、原点からラインまでの垂直距離です。
変数 "theta" は、原点からラインまでの垂直な投影を正の "x" 軸から時計回りに測定した角度です。theta の範囲は –90° ≤ θ < 90° です。ライン自体の角度は θ + 90° で、正の x 軸に対して時計回りに測定されています。
SHT は、行と列がそれぞれ "rho" 値と "theta" 値に対応するパラメーター空間行列です。SHT の要素は積和セルを表します。当初、各セルの値はゼロです。次に、イメージの背景以外のすべての点で、rho が theta ごとに計算されます。rho は SHT 内の最も近似する行に丸められます。積和セルは増分されます。この手順の終了時に、SHT(r,c) の Q の値は、xy 平面の Q 点が theta(c) と rho(r) によって指定されたライン上にあることを意味します。SHT のピーク値は入力イメージの潜在的なラインを表します。
ハフ変換行列 H
は nrho 行 ntheta 列の行列です。ここで、
nrho = 2*(ceil(D/RhoResolution)) + 1
および
D = sqrt((numRowsInBW - 1)^2 + (numColsInBW - 1)^2)
です。
rho
値は -diagonal
から diagonal
までの範囲です。ここで、
diagonal = RhoResolution*ceil(D/RhoResolution)
です。
ntheta = length(theta)