ROI から生成されたマスク​画像の一部を抜き出す​方法はありますか?

10 次查看(过去 30 天)
MathWorks Support Team
IMELLIPSE や IMFREEHAND を使用して関心領域 (ROI) を指定した画像があります。そのような関数で指定された領域内に含まれる画像の一部を抜き出す方法を教えてください。

采纳的回答

MathWorks Support Team
特定の ROI からバイナリマスクを作成し、0 と 1 のみを含む行列を作成します。論理インデクスを使用した画像とバイナリマスクを使用して、画像の選択部分のみを抜き出します。結果の画像は抽出部分のみが含まれています。
以下にこのプロセスの例を示します。ここでは、Image Processing Toolbox によって提供されているサンプル画像を使用しています。
% 1) ワークスペースの変数として画像ファイルを開く
img = imread('peppers.png');
% 2) 画像を表示し、ハンドルを保存
h_im = imshow(img);
% 3) ROI を定義する楕円を作成
e = imellipse(gca,[55 10 120 120]);
% 4) 楕円からマスクを作成
BW = createMask(e,h_im);
% 4a) (カラー画像のみ) 3つのチャネルにマスクをコピー
BW(:,:,2) = BW;
BW(:,:,3) = BW(:,:,1);
% 5) ROI の外側の領域を設定する論理インデクスを使用
ROI = img;
ROI(BW == 0) = 0;
% 6) 抜き出した部分を表示
figure, imshow(ROI);

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!