create multi mask using ROI Freehand

조회 수: 5 (최근 30일)
Amir Azadeh Ranjbar
Amir Azadeh Ranjbar 2021년 12월 29일
답변: Amir Azadeh Ranjbar 2021년 12월 29일
clc;clear;close all
im=imread("circlesBrightDark.png");
image=imshow(im);
for i=1:4
roi(i)=images.roi.AssistedFreehand(image);
draw(roi(i))
hold on
roi(i+1)=images.roi.AssistedFreehand(image);
draw(roi(i+1))
end
for i=1:2
for j=1:2
mask=roi(i).createMask | roi(i+j).createMask ;
end
end
  댓글 수: 1
Amir Azadeh Ranjbar
Amir Azadeh Ranjbar 2021년 12월 29일
This code that I wrote only makes 2 masks. I would be grateful if someone modifies the code so that they can make as many masks as they want.
If there is a code prepared for this purpose, please help

댓글을 달려면 로그인하십시오.

채택된 답변

DGM
DGM 2021년 12월 29일
The way you're doing this is causing objects to be overwritten.
You can use the same method I showed in your prior question.
im = imread("coloredChips.png");
numROI = 6;
% create ROI objects and adjust them
imshow(im);
for k = 1:numROI
h(k) = drawassisted(gca);
end
% wait until the user is done
input('Press enter when done adjusting ROI objects');
% build mask
mask = false(size(im,1),size(im,2));
for k = 1:numROI
mask = mask | createMask(h(k));
end

추가 답변 (1개)

Amir Azadeh Ranjbar
Amir Azadeh Ranjbar 2021년 12월 29일
Yes thank you very much unfortunately I had not seen it

태그

Community Treasure Hunt

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

Start Hunting!

Translated by