バイナリ イメージの距離変換
距離変換は、イメージ内で離れている点の計量または尺度を与えます。関数 bwdist
は、off
(0
) に設定された各ピクセルとバイナリ イメージの最も近い非ゼロ ピクセルの間の距離を計算します。
関数 bwdist
は、複数の距離計量をサポートしています。
距離計量
距離計量 | 説明 | 図 |
---|---|---|
ユークリッド | ユークリッド距離は 2 つのピクセル間の直線距離です。 |
|
シティブロック | シティブロック距離計量は 4 連結近傍に基づいたピクセル間のパスを計算します。隣同士のピクセルは 1 単位、対角要素は 2 単位離れています。 |
|
チェス盤 | チェス盤距離計量は 8 連結近傍に基づいたピクセル間のパスを計算します。隣同士または対角要素のピクセルは 1 単位離れています。 |
|
準ユークリッド | 準ユークリッド計量は水平、垂直、対角の線分に沿ったユークリッド距離の合計を測定します。 |
|
この例は、重なりをもつ 2 つの円筒オブジェクトを含んでいるバイナリ イメージを作成します。
center1 = -10; center2 = -center1; dist = sqrt(2*(2*center1)^2); radius = dist/2 * 1.4; lims = [floor(center1-1.2*radius) ceil(center2+1.2*radius)]; [x,y] = meshgrid(lims(1):lims(2)); bw1 = sqrt((x-center1).^2 + (y-center1).^2) <= radius; bw2 = sqrt((x-center2).^2 + (y-center2).^2) <= radius; bw = bw1 | bw2; figure imshow(bw)
バイナリ イメージの補数の距離変換を計算するには、関数 bwdist
を使用します。2 つの円筒領域の中心が白色になることを、距離変換のイメージで確認してください。
D = bwdist(~bw); figure imshow(D,[])