画像に一つ目の関心領​域を設定後に位置や大​きさを微調整し,次に​別の関心領域設定に移​りたい場合について

6 views (last 30 days)
KT
KT on 1 May 2023
Commented: KT on 2 May 2023
画像に複数の関心領域を設定するとき,一つ目の関心領域の位置や大きさの微調整が終了したのち,次の関心領域の設定に移りたい場合には
wait関数が使用できると考えましたが,以下のようなコードではROI_2に移ることなく次に進むことができません.
I = imread('pout.tif');
imshow(I)
ROI_1 = drawpolygon(); % drawcircle(),drawfreehand()
wait(ROI_1)
bw_1 = ROI_1.createMask();
ROI_2 = drawpolygon(); % drawcircle(),drawfreehand()
wait(ROI_2)
bw_2 = ROI_2.createMask();
wait関数やROI_2に移る方法についてご教示頂けないでしょうか.
(追記,編集分)
また,データ型がuint16である画像をマスク画像とオーバーレイする場合,
Overlay_1 = labeloverlay(uint8(I),bw_1); ...(1)
imshow(Overlay_1)
にてうまくいくのですが,
以下に添付しましたコントラストをもつ画像を前述と同様に処理しても,真っ白な画像にマスク画像がオーバーレイされて出力されます.
ご教示頂いた方法で,
Overlay_2 = labeloverlay(uint16(I)*20,bw_2); ...(2)
imshow(Overlay_2)
といくらかの係数をかけるとうまく表示されました.
labeloverlayにて出力される融合画像はuint8と記載あるため,あらかじめ画像データをuint8にキャストしたのが(1)のコードです.当然ながら,(1)をuint16とすると画像は真っ黒に表示されます.逆に,以下の添付した画像ではuint8にすると,真っ白な画像(すべての画素がなぜか255)となり,uint16にすると真っ黒な画像が表示されます.
同じ画像表示にも関わらず非常に煩雑なのですが,キャスト変換や画像表示の考え方が間違っているのでしょうか.ご教示頂けないでしょうか.

Accepted Answer

Atsushi Ueno
Atsushi Ueno on 1 May 2023
使った事が無く明確なイメージを持っていませんが:
  • drawpolygon 関数は新たに多角形ROIを作成完了するまで(※)ブロック
  • waitメソッドは既存のROIを変更完了するまで(※)ブロック
  •  (※いずれもマウス ボタンのダブルクリックにより作業完了と判断される)
なので、一つの多角形ROIを作成完了(ダブルクリック)後、そのROIをもう一度ダブルクリックすれば、新たにもう一つの多角形ROIを作成出来るのではないでしょうか?
  5 Comments
Atsushi Ueno
Atsushi Ueno on 2 May 2023
> キャスト変換や画像表示の考え方が間違っているのでしょうか
いいえ。間違っていないと思います。
A = imread('kobi.png'); % 画像データAはuint8型
[L,N] = superpixels(A,20);
B = labeloverlay(im2double(A),L); % 表示色を維持する様に値を自動スケーリングしてくれる
C = labeloverlay(im2int16(A),L); % 同様
D = labeloverlay(im2single(A),L); % 同様
E = labeloverlay(im2uint16(A),L); % 同様
F = labeloverlay(im2uint8(A),L); % 同様
montage({B,C,D,E,F}); % 上記いずれの型を入力してもlabeloverlay関数の出力はuint8
> 真っ白な画像にマスク画像がオーバーレイされて出力されます
⇒ 先日のコメントは下記の様に間違ってたかな(※)と思っていましたが、上手くいきましたか。2000前後の20=40000前後で表示されたという事はやはり値域 0~65535 の uint16 画像を入力していたのだと思いますが、labeloverlay 関数の出力は真っ白ではなくほぼ真っ黒になるはずなのです。まぁいいや
(※)【誤】画像データ型はuint16かint16で、値域0~65535に対し2000前後だからほぼ黒になる
(※)【正】画像データ型はsingleかdoubleで、値域0.0~1.0に対し2000前後だから真っ白になる
KT
KT on 2 May 2023
im2...にて自動スケーリングしてくれれば良かったのですが,同じように真っ白な画像が出力されました.0-1のマスク画像と0-65535をもつ画像(添付したような画像)では微調整がもっとも良さそうです.
オーバーレイされた背景画像のコントラストを自由に変更できればいいのですが,ご教示頂いた係数をかけて調整するのが一番納得いきました.
最後のコメントの訂正も非常に分かりやすい回答ありがとうございました.

Sign in to comment.

More Answers (0)

Products


Release

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!