How to perform imopen on ROI without affecting other region
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
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."
0 comentarios
Respuestas (1)
DGM
el 29 de Abr. de 2023
The thing you're doing isn't what you think you're doing. You're opening the elliptical mask itself, not the image. You're then using the logical mask as the filter kernel in a linear filtering operation. Neither make sense.
If you really want to use roifilt2() for this, you can.
% read image
inpict = imread('snowflakes.png'); % 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)
0 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!