Specific image intensity for further processing.

How do i select a specific intensity of an image? For example i would like to process only the intensity of 150 on grayscale image.

Answers (2)

Ben11
Ben11 on 25 Jul 2014
Edited: Ben11 on 25 Jul 2014
Try this:
PixelsofInterest = (YourImage == 150); % get the location of the pixels you want to analyze
imshow(PixelsofInterest)
What does "process" mean? It's trivial to find a "map" - a binary image - that says where the pixels with value 150 are.
binaryImage = grayImage == 150;
But what you do after that depends on what you want to do. If you just want a 1D list of pixel values, you can do
pixelValues = grayImage(binaryImage); % Of course they will all equal 150.
If you want the sum of the pixels (the count), do
totalArea = sum(binaryImage(:));
If you want the perimeter, Solidity, Equivalent circular Diameter, or something like that, you'll have to do
labeledImage = bwlabel(binaryImage);
measurementsStructure = regionprops(labeledImage, grayImage, 'all');
You can pass in specific measurements instead of 'all' if you know what they are.
See the Image Segmentation Tutorial in my File Exchange for a better discussion and demo. http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862

4 Comments

I want to perform bilinear interpolation on the image intensity.
What are you interpolating between? And what does the 150 have to do with that???
I want to interpolate the specific intensity, to remove specular reflection actually.
That didn't answer either question. But maybe you want roifill().

This question is closed.

Asked:

on 25 Jul 2014

Closed:

on 20 Aug 2021

Community Treasure Hunt

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

Start Hunting!