1

画像に影領域の境界が見つかりました。これらの境界を画像の上にプロットできますが、これらの境界のピクセル値のみが 1 に等しいバイナリ イメージを作成したいと考えています。何らかの理由で、位置配列をインデックスとして使用しようとすると、行の値が分離されません。代わりに、ブロック全体のピクセルを置き換えます (各 x 値をすべての y 値に置き換えます)。ただし、同じインデックスでプロットすると、正しい形状が得られます。例えば、

>> m=20;
>> location = [5 6;5 7;5 8;5 9;5 10; 5 11;5 12; 5 13; 5 14;5 15;5 5;6 5; 7 5;8 5;9 5;10 5;11 5; 12 5;13 5;14 5;15 5]

location =

     5     6
     5     7
     5     8
     5     9
     5    10
     5    11
     5    12
     5    13
     5    14
     5    15
     5     5
     6     5
     7     5
     8     5
     9     5
    10     5
    11     5
    12     5
    13     5
    14     5
    15     5

>> blank = zeros(m);
>> blank(matrix(:,1),matrix(:,2))=1;
>> figure
>> imagesc(blank)
>> colormap gray
>> hold on
>> plot(matrix(:,2), matrix(:,1), 'g', 'Linewidth', 3)
>> axis image

これは私にこれを与えます:

これは私の最初の投稿です...画像を投稿することはできませんが、私の言いたいことを理解していただければ幸いです。助けてください。これは、私が達成しようとしていることに対する私の側のとげであり、このように使用することを避けようとしてきました.

4

1 に答える 1

2

sub2indこれを行うには\を使用する必要がありますind2sub 。たとえば、あなたの場合:

linearInd = sub2ind([m m], location(:,1),  location(:,2));
blank = zeros(m);
blank(linearInd)=1;
于 2013-05-27T03:37:51.260 に答える