从tiff堆栈计算高于阈值的体素数量

时间:2015-07-07 16:39:40

标签: matlab image-processing tiff imagej

我已经将一个tiff堆栈上传到MATLAB中,我正在尝试计算某个阈值内的体素数量。图像的最大值为0到255,我的阈值为75到255.图像颜色分开,现在只有红色和黑色。我的代码如下,

FileTif='ImageStack.tif';
InfoImage=imfinfo(FileTif);
mImage=InfoImage(1).Width;
nImage=InfoImage(1).Height;
NumberImages=length(InfoImage);
FinalImage=zeros(nImage,mImage,NumberImages,'uint16');
for i=1:NumberImages
   FinalImage(:,:,i)=imread(FileTif,'Index',i,'Info',InfoImage);
end
idx = find(FinalImage >= 75 & FinalImage <= 255);
length(idx)

我的问题是这是否抓住了我说的我想要做的事情。或者更确切地说,当以这种方式上传tiff堆栈时,我的3D矩阵FinalImage的元素是否为0到255之间的颜色值?

我相信我是正确的
max(FinalImage(:))
min(FinalImage(:))

分别返回255和0,但是当我在ImageJ上使用体素计数器插件并获得不同的值时会出现混淆。我不确定这种差异是由于插件中的体素计数方法还是ImageJ阈值图像堆栈的方式。任何关于这种差异的灯都会非常感激!

1 个答案:

答案 0 :(得分:0)

我解决了我的问题,如果其他人需要,我会在这里发布答案。我在设置阈值后单击“应用”,这会将其更改为二进制,从而导致错误的结果。如果我设置了阈值,然后使用体素计数器插件,那么我将得到与我在MATLAB中的代码相同的结果。