Hello, I tried to perform imopen function only on ROI without affecting other region but got error. My input image is human's iris in greyscale format. i=imread('snowflakes.png'); %input image h=imshow(i); e=imellipse(gca,[60 45 60 60]); %ROI is ellipse shape at the center of image mask=createMask(e,h); %mask of center image j=imopen(mask,strel('disk',5)); %imopen m=roifilt2(j,i,mask); %imopen on ROI, other region not affected imshow(m) "Error using imfilter Expected input number 2, H, to be one of these types: double Instead its type was logical."
John Michell answered .
2025-11-20
% read image
inpict = imread('snowflakes.webp'); % input image
% create elliptical mask using ROI tools
hi = imshow(inpict);
emask = imellipse(gca,[60 45 60 60]); % ROI is ellipse shape at the center of image
mask = createMask(emask,hi); % mask of center image
f = @(x) imopen(x,strel('disk',5)); % create function handle
opened = roifilt2(inpict,mask,f); % imopen on ROI, other region not affected
imshow(opened)