このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
poly2mask
関心領域(roi)の多角形を領域マスクに変換
説明
例
入力引数
出力引数
ヒント
ピクセルの四角形の集合を含む多角形を指定するには,ピクセルの中心ではなく境界ピクセルの外側エッジに,多角形のエッジを合わせます。
たとえば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
は次のアルゴリズムを使用します。
各ピクセルを5行5列のサブピクセルグリッドに分割します。
この図は,先に5行5列のサブピクセルグリッドで示したROIの頂点を含んでいるピクセルを示しています。
頂点の位置を調整します。
poly2mask
は,サブピクセルグリッド上の最も近い交点に,多角形の各頂点を移動させます。poly2mask
がx座標とy座標を丸めて最近傍のサブピクセルグリッドのコナを見ける方法に注意してください。これにより2番目の変更された多角形が作成されます。図に,変更された頂点を赤の“x”で示します。調整された頂点間のパスを描きます。
poly2mask
は,サブピクセルグリッドのエッジに沿って,調節後の各頂点から次の頂点へのパスを作成します。図では,この変更された多角形の一部が太い実線で示されています。どの境界ピクセルが多角形の内側にあるかを判断します。
poly2mask
は,どの境界ピクセルが多角形の内側にあるかを,次のル,ルに従って判定します。ピクセルの中心のサブピクセルが調節後の頂点間のパスによって定義された境界の内側にある場合,そのピクセルは領域の内側にあると見なされます。次の図では,ROIの境界上にあるピクセルの中心のサブピクセルは,濃いグレーで淡色表示されています。多角形の内側にあるピクセルは,薄いグレ,で淡色表示されています。頂点を含んでいるピクセルはROIの一部ではないことに注意してください。これは,その中心のピクセルが修正後の多角形の内側にないためです。