How to apply a different b/w threshold to each row of the image?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Nut
am 13 Jun. 2016
Kommentiert: Image Analyst
am 22 Jan. 2020
Hi,
I would convert an image from grayscale to black-and-white using the im2bw function, and I need to apply a different threshold to each row of the image. Which is the most efficient way to do this? Is there a way to avoid the "for" cycle?
Thank you very much.
2 Kommentare
Image Analyst
am 22 Jan. 2020
Roman, it would be something like
[rows, columns, numberOfColorChannels] = size(theImage);
binaryImage = false(rows, columns);
for row = 1 : rows
% Get the threshold for this row - however you do it (I don't know).
thisThreshold = whatever;
% Now threshold/binarize the image for this row only.
binaryImage(row, :) = theImage(row, :) > thisThreshold;
end
Akzeptierte Antwort
Andrew Bliss
am 13 Jun. 2016
Depending on the input type of your image, you may be able to just do a simple thresholding operation (as below), otherwise you'll have to delve a little deeper into image processing.
asdf=imread('example.tif');
figure,imshow(asdf)
zxcv=rgb2gray(asdf);
figure,imshow(zxcv)
thresh=[50*ones(325,1);150*ones(325,1)]; %here you set the threshold for each row
threshMatrix=repmat(thresh,1,600);
BW=zxcv>threshMatrix;
figure,imshow(BW)
Weitere Antworten (1)
Image Analyst
am 14 Jun. 2016
Bearbeitet: Image Analyst
am 14 Jun. 2016
No, you'll have to use a for loop. It's not a problem though. It will be very fast. No need to worry about for loops that are only a few thousand iterations.
Why do you need a different threshold for each row anyway?
You might be able to use a different function. There are new binarization functions. See Steve's blog:
7 Kommentare
Image Analyst
am 15 Jun. 2016
OK. I have a nice manual/interactive thresholding utility in my File Exchange if you're interested: http://www.mathworks.com/matlabcentral/fileexchange/29372-thresholding-an-image
Siehe auch
Kategorien
Mehr zu Computer Vision with Simulink finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!