主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

poly2mask

関心領域(roi)の多角形を領域マスクに変換

説明

BW= poly2mask (西nはバesc escナリの関心領域(roi)マスクBWn列のサesc escズで,頂点が西座標であるROI多角形から計算します。poly2maskは多角形が閉じられていない場合,自動的に閉じます。

関数poly2maskは,多角形の内側にあるピクセルを1に設定し,多角形の外側にあるピクセルを0に設定します。ROIに一部が囲まれたピクセルの分類の詳細にいては,アルゴリズムを参照してください。

すべて折りたたむ

多角形のx座標とy座標を指定します。

X = [63 186 54 190 63];Y = [60 60 209 204 60];

@ @ @ @ @ @ @ @ @ @ @ @ @ @。

Bw = poly2mask(x,y,256,256);

マスクを表示し,多角形の周りにラ。

imshow (bw)情节(x, y,“b”“线宽”, 2)

图中包含一个轴对象。axis对象包含image、line类型的2个对象。

X座標とy座標に2組のランダムな点を定義します。

X = 256*rand(1,4);Y = 256*rand(1,4);X (end+1) = X (1);Y (end+1) = Y (1);

マスクを作成します。

Bw = poly2mask(x,y,256,256);

マスクを表示し,多角形の周りにラ。

imshow (bw)情节(x, y,“b”“线宽”, 2)

图中包含一个轴对象。axis对象包含image、line类型的2个对象。

入力引数

すべて折りたたむ

多角形の頂点のx座標。数値ベクトルとして指定します。西およびの長さは一致しなければなりません。

デ,タ型:

多角形の頂点のy座標。数値ベクトルとして指定します。西およびの長さは一致しなければなりません。

デ,タ型:

マスク内の行数。非負の整数として指定します。

デ,タ型:

マスク内の列数。非負の整数として指定します。

デ,タ型:

出力引数

すべて折りたたむ

バ@ @ナリ@ @メ@ @ジ。n列の逻辑行列として返されます。

デ,タ型:逻辑

ヒント

  • ピクセルの四角形の集合を含む多角形を指定するには,ピクセルの中心ではなく境界ピクセルの外側エッジに,多角形のエッジを合わせます。

    たとえば4列目から10列目,4行目から10行目にあるピクセルが含まれるようにするには,次のようにして多角形の頂点を指定します。

    X = [4 10 10 4 4];Y = [4 4 10 10 4];掩码= poly2mask(x,y,12,12)
    掩码= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    この例では,多角形は境界ピクセルの中心を通過し,目的の境界ピクセルのうちいくつかのみが多角形の内側にある4行4列目のピクセルは多角形の内側にない)と判定される結果となりました。これらの要素が多角形に含まれるようにするには,次の例のように,分数値を使用して4番目の行(3.5)と10番目の行(10.5)の外側エッジと,4番目の列(3.5)と10番目の列(10.5)の外側エッジを頂点として指定します。

    X = [3.5 10.5 10.5 3.5 3.5];Y = [3.5 3.5 10.5 10.5 3.5];掩码= poly2mask(x,y,12,12)
    掩码= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

アルゴリズム

関心領域(roi)のマスクを作成する場合,poly2maskは,どのピクセルが領域に含まれるかを判定しなければなりません。領域のエッジにあるピクセルの一部分しか境界線上にない場合は,これを判断するのが難しくなる場合があります。次の図は三角形の関心領域を表したもので,roiの頂点の1を拡大して調べています。この図は,関心領域の境界でピクセルの一部がどのように覆われるかを示しています。

ROIのエッジにあるピクセルの一部分のみが境界上にある

どのピクセルが領域内にあるかを判定するために,poly2maskは次のアルゴリズムを使用します。

  1. 各ピクセルを5行5列のサブピクセルグリッドに分割します。

    この図は,先に5行5列のサブピクセルグリッドで示したROIの頂点を含んでいるピクセルを示しています。

  2. 頂点の位置を調整します。

    poly2maskは,サブピクセルグリッド上の最も近い交点に,多角形の各頂点を移動させます。poly2maskx座標とy座標を丸めて最近傍のサブピクセルグリッドのコナを見ける方法に注意してください。これにより2番目の変更された多角形が作成されます。図に,変更された頂点を赤の“x”で示します。

  3. 調整された頂点間のパスを描きます。

    poly2maskは,サブピクセルグリッドのエッジに沿って,調節後の各頂点から次の頂点へのパスを作成します。図では,この変更された多角形の一部が太い実線で示されています。

  4. どの境界ピクセルが多角形の内側にあるかを判断します。

    poly2maskは,どの境界ピクセルが多角形の内側にあるかを,次のル,ルに従って判定します。ピクセルの中心のサブピクセルが調節後の頂点間のパスによって定義された境界の内側にある場合,そのピクセルは領域の内側にあると見なされます。

    次の図では,ROIの境界上にあるピクセルの中心のサブピクセルは,濃いグレーで淡色表示されています。多角形の内側にあるピクセルは,薄いグレ,で淡色表示されています。頂点を含んでいるピクセルはROIの一部ではないことに注意してください。これは,その中心のピクセルが修正後の多角形の内側にないためです。

拡張機能

バ,ジョン履歴

R2006aより前に導入

参考

|