How to apply a different b/w threshold to each row of the image?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Nut
el 13 de Jun. de 2016
Comentada: Image Analyst
el 22 de En. de 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 comentarios
Image Analyst
el 22 de En. de 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
Respuesta aceptada
Andrew Bliss
el 13 de Jun. de 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)
Más respuestas (1)
Image Analyst
el 14 de Jun. de 2016
Editada: Image Analyst
el 14 de Jun. de 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 comentarios
Image Analyst
el 15 de Jun. de 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
Ver también
Categorías
Más información sobre Computer Vision with Simulink 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!