How to crop images in Matlab based on Intensity Profiles?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Warid Islam
el 1 de Ag. de 2019
Comentada: Warid Islam
el 3 de Ag. de 2019
I have an image in Matlab which I want to crop based on the intensity profile. Below is my image.![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/232254/image.jpeg)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/232254/image.jpeg)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/232255/image.jpeg)
I want to crop out the blue portion of the image based on the intensity profile. For example, based on the intensity profile, I want to crop the part of the image where the intensity of blue is higher than the other colors. Below is my sample code and example.
hFig = figure ;
subplot(1, 2, 1 );
rgbImage = imread('Intensity1.jpg ');
imshow(rgbImage )
subplot(1, 2, 2 );
croppedImage = rgbImage(200 : 400 , :, :);
imshow(croppedImage);
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/232256/image.jpeg)
In the image above, it can be seen that the blue portions still remain in the image which I don't want. Any help would be very much appreciated. Thank you.
13 comentarios
Image Analyst
el 3 de Ag. de 2019
Looks like you've accepted the answer below. I am dealing with an OCT project in my company right now. I would not segment/threshold the RGB image like in the answer and like you've done it above. You have the original gray scale image and that's what you need to threshold. Do not do it on the RGB image.
brightStuff = grayImage > some Value;
Respuesta aceptada
awezmm
el 3 de Ag. de 2019
Try this where img is your original image:
% get red, green, blue channels
redC = img(:,:,1);
greenC = img(:,:,2);
blueC = img(:,:,3);
% mask where red channel is greater than blue channel and green channel greater than blue channel
mask = redC > blueC & greenC > blueC;
% overlay mask into original image
finalimg = bsxfun(@times, img, cast(mask,class(img)));
%plotting
figure
subplot(1,2,1)
imshow(img)
subplot(1,2,2)
imshow(finalimg)
2 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Image Processing Toolbox en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!