Borrar filtros
Borrar filtros

How do I change an image to binary?

3 visualizaciones (últimos 30 días)
anibb
anibb el 6 de Mzo. de 2016
Comentada: Star Strider el 6 de Mzo. de 2016
I have a picture of a black wrench with a gray background. I need to figure out a threshold value that separates the two so that I can set the background pixels to 0 and the pixels of the wrench to 1. I just need help figuring out the threshold value and extract the background pixels vs. the wrench pixels. I think I can figure out how to then change them to either 1 or 0.

Respuesta aceptada

Star Strider
Star Strider el 6 de Mzo. de 2016
See the im2bw function in the Image Processing Toolbox. Experiment until you get the result you want.
  2 comentarios
anibb
anibb el 6 de Mzo. de 2016
Unfortunately i'm not able to use a built-in function such as im2bw
Star Strider
Star Strider el 6 de Mzo. de 2016
Without your image to work from, I can only guess at a solution. A grayscale image (that I assume you have) is a 2D matrix and has unit8 values from 0 to 255. You may have to ‘cut and try’, not uncommon with any signal processing problem.
Start with something like:
BinImg = GrayImg >127;
then display it with imshow to see the result. Then just vary the threshold up or down until you get the result you want.

Iniciar sesión para comentar.

Más respuestas (2)

Ahmet Cecen
Ahmet Cecen el 6 de Mzo. de 2016
Editada: Ahmet Cecen el 6 de Mzo. de 2016
ImageSegmenter should help you if you have the toolbox, since you sound like a novice user. http://www.mathworks.com/help/images/image-segmentation-using-the-image-segmenter-app.html
Otherwise use the histogram function. If you are lucky, it will be shaped like the back of a camel and you can find a valley between to peaks, then use that value as your threshold. http://www.mathworks.com/help/matlab/ref/histogram.html
There is also a function that finds an automatic threshold for you if you trust it, but it also requires the toolbox: http://www.mathworks.com/help/images/ref/graythresh.html

Walter Roberson
Walter Roberson el 6 de Mzo. de 2016
pixvals = sort(YourGreyImage(:));
middle_value = pixvals(round(end/2));
BWimage = YourGreyImage < middle_value;

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by