imfreehand
を使用してユーザー制御バイナリマスクを作成しようとしています。私は、ユーザーが単一のリージョンの代わりに複数のリージョンを選択できるようにしようとしています。ある領域が画像tophatImage
に描画されると、選択された領域のバイナリバージョンが画像totalBinary
に表示されます。ここまでは順調ですね。imfreehandを使用して複数のバイナリ領域を描画する方法
問題は、次の領域を描画する必要がある場合、先に描画された領域がtophatImage
に消えてしまうことです。これは、ユーザがどの領域を描画したかを見ることができず、描画された領域を削除することができないため、問題となり得る。以前に描画された領域のバイナリバージョンはtotalBinary
のまま残っているため、問題はありません。
for-loop
の中のsubplot(1,2,1); imshow(tophatImage)
という行から問題が発生したと思います。新しい領域を描画する必要があるたびに、画像tophatImage
がリセットされています。下の最初の画像でわかるように、3番目の画像のように画像が残っていません。修正されたコードを使用してコード
、領域がtophatImage
から削除された場合、それがあるように、どのように私はそれを作ることができます修正し
オリジナル誤ったコード
subplot(1,2,1); imshow(tophatImage)
hFH = imfreehand();
binaryImage = createMask(hFH);
totalBinary = false(size(histogramEq));
for k = 1:5
totalBinary = totalBinary | binaryImage;
subplot(1,2,2); imshow(totalBinary); drawnow
subplot(1,2,1); imshow(tophatImage)
hFH = imfreehand();
binaryImage = createMask(hFH);
end
totalBinary
に更新しましたか?
for k = 1:5
totalBinary = totalBinary | binaryImage;
subplot(1,2,2); imshow(totalBinary); drawnow
subplot(1,2,1); %imshow(tophatImage) % <-- Remove this
hFH = imfreehand();
binaryImage = createMask(hFH);
end
それが今取り組んでいるが、私は地域を削除すると、いくつかの理由でtotalBinary' 'に更新されていないようですエラーが発生します。 – Senyokbalgul
私はそれを試してみました。等高線とマスクの両方が更新されます。 – rayryeng
コードはリージョンを削除しません。それは付加するだけです。地域を削除するにはこのコードであなたの投稿を更新してください。私は何ができるかを見ていきます。 – rayryeng