Use roipoly or poly2mask to calculate intensity

2 visualizaciones (últimos 30 días)
Ihiertje
Ihiertje el 1 de Feb. de 2017
Comentada: Image Analyst el 1 de Feb. de 2017
Hi,
I used the function mmROI to draw three ROIs on multiple images (n=10). Now I have corrected the original images and I want to calculate the mean value within the ROI again. I tried two things with both the roipoly and poly2mask from the mmROI function. However, I cannot get the mean value from the predefined ROI in the new images.
if true
I = Fluo_Corrected_ExpTime(:,:,:,1);
J = imadjust(I);
BW = roipoly(X1, Y1,J,720,1080);
imshow(J)
hold on
plot(X1, Y1, 'r.-', 'MarkerSize',15);
end
and
if true
I = Fluo_Corrected_ExpTime(:,:,:,2);
J = imadjust(I);
imagesc(I)
ROI1 = poly2mask (X1, Y1,720,1080); %mxn is size image
Bimg = imagesc(ROI1) end
Hope you can help me again

Respuestas (1)

Image Analyst
Image Analyst el 1 de Feb. de 2017
You need to call poly2mask() for each ROI that the user draws and then OR them together:
ROI1 = poly2mask(x1, y1, rows, columns);
ROI2 = poly2mask(x2, y2, rows, columns);
ROI3 = poly2mask(x3, y3, rows, columns);
ROI = ROI1 | ROI2 | ROI3;
You can get the x,y from imfreehand(), roipoly(), or roipolyold().
  2 comentarios
Ihiertje
Ihiertje el 1 de Feb. de 2017
Thank you for your reaction. I managed to get coordinates from the ROIs. However, I have problems to apply these ROI to another image and measure the mean intensity value within that ROI. Can you maybe help me with that as well?
Image Analyst
Image Analyst el 1 de Feb. de 2017
Sure. What's the problem? You used regionprops() didn't you? That should do it. See my Image Segmentation Tutorial for a full well commented demo. http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by