MATLAB Answers

trouble using im2bw for image thresholding

22 views (last 30 days)
Hello, I need to threshold an image. This is what I've tried (see below) but I just get every pixel of the image with a value of 1. The original data is an ascii file. If it isn't possible to use im2bw in this situation then can anyone suggest an alternative way of thresholding?
Thanks
imagedata2 = dlmread('C:\data\3d_cells\17_8um_exp0_002_bf_run1.asc');
clims=[500 4000];
figure('Name','');
image2=imagesc(imagedata2,clims);colormap gray;
level = graythresh(image2);
BW2 = im2bw(image2,level);
clims = [0,1.5];
figure;
imagebw=imagesc(BW2,clims); colormap gray

  0 Comments

Sign in to comment.

Accepted Answer

Natasha
Natasha on 20 May 2011
I did it this way;
imagedata2thresh=+(imagedata2>1420); %put threshold value
so I just put in the actual value that I want to use for the threshold instead of faffing around with levels.

  1 Comment

Sign in to comment.

More Answers (1)

Sean de Wolski
Sean de Wolski on 17 May 2011
level = graythresh(imagedata2);
BWS = im2bw(imagedata2,level);
If this doesn't work what are class is imagedata2?
class(imagedata2)
and what is the Otsu effectiveness metric?
[level, em] = graythresh(imagedata2);

  4 Comments

Show 1 older comment
Natasha
Natasha on 20 May 2011
the Otsu metric comes out as level= 0 , em=0 but even if I manually set the level to something that isn't zero I still get the same thing happening.
Natasha
Natasha on 20 May 2011
Also it's not sparse so that's not the problem
Sean de Wolski
Sean de Wolski on 20 May 2011
Yes, the behavior your seeing is expected and I would say not properly documented. Graythresh requires that the data be uint8 so it silently converts your data to uint8. The conversion method bins all data close to each other together it doesn't pick a good range. That's why I asked what class your data is. If it's uint16, you should convert it to uint8 by selecting the range of values yourself and then thresholding. I think this behavior needs to have better documentation and I've considered writing an enhancement request.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!