私は3つのクラスを持つ画像を持っています。各クラスは番号{2,3,4}
でラベル付けされ、背景は{1}
です。私は各クラスの輪郭を画像に描きたい。以下のMATLABコードを試しましたが、輪郭が重なり合って見える(青と緑、黄と緑)。どのようにクラスごとに輪郭を描くことができますか?画像内に複数の輪郭を描くことは可能ですか?
Img=ones(128,128);
Img(20:end-20,20:end-20)=2;
Img(30:end-30,30:end-30)=3;
Img(50:end-50,50:end-50)=4;
%%Img(60:end-60,60:end-60)=3; %% Add one more rectangular
imagesc(Img);colormap(gray);hold on; axis off;axis equal;
[c2,h2] = contour(Img==2,[0 1],'g','LineWidth',2);
[c3,h3] = contour(Img==3,[0 1],'b','LineWidth',2);
[c4,h4] = contour(Img==4,[0 1],'y','LineWidth',2);
hold off;
これは、それぞれの「クラス」はその形状の点で、中空の四角として定義されているので、これが起こっている私の予想結果
多くの感謝raryengを。 – user8264
@ user8264大歓迎です。 – rayryeng
@ user8264は受け入れるのに十分なこの答えですか? – rayryeng