Thresholding an image based on part of a histogram's values

4 Ansichten (letzte 30 Tage)
Hi folks,
I'm trying to get the parts of an image that fall between 2 values of its grayscale histogram, the revert the image back to its colour form. So far, I am struggling to get anything but a black image! Any ideas on what I'm doing wrong please? Below is my code.
baseGray = rgb2gray(I);
isoLower = 135;
isoUpper = 155;
lessThan = baseGray < isoLower;
greaterThan = baseGray > isoUpper;
baseGray(lessThan) = 0;
baseGray(greaterThan) = 0;
grayThresh = imbinarize(baseGray);
grayThresh = bwareaopen(grayThresh, 3000);
grayThresh = imfill(grayThresh, 'holes');
grayThresh = bwperim(grayThresh);
grayThresh = imdilate(grayThresh, ones(5));
grayThresh = imerode(grayThresh, ones(3));
grayThresh = imfill(grayThresh, 'holes');
refigure = img.*repmat(uint8(grayThresh),[1 1 3]);
imshow(refigure);

Akzeptierte Antwort

Ameer Hamza
Ameer Hamza am 13 Jun. 2020
Bearbeitet: Ameer Hamza am 13 Jun. 2020
Try something like this
img = im2double(imread('pears.png'));
img_gray = rgb2gray(img);
isoLower = 135/255; % double image, pixel intensity between 0 and 1
isoUpper = 155/255;
mask = (isoLower < img_gray) & (img_gray < isoUpper);
refigure = img;
refigure(~mask(:,:,[1 1 1])) = 0;
imshow(refigure)
  10 Kommentare
Image Analyst
Image Analyst am 18 Jun. 2020
Why not just try the Color Thresholder on the Apps tab of the tool ribbon and interactively set your thresholds???
Teshan Rezel
Teshan Rezel am 18 Jun. 2020
Hi Image Analyst, I've tried the tool and found it useful to a degree. But my issue is that I will need to analyse several batches of 900 images each, so doing them individually in the app would not be efficient. Furthermore, I need to analyse them in grayscale, which isn't an option on the app as far as I can see. Thanks for your suggestion!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Image Processing Toolbox finden Sie in Help Center und File Exchange

Produkte


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by