我想创建一张MRI扫描的二进制地图,将感兴趣的区域与背景分开。我想使用Otsu的方法,我第一次使用的是“灰色阈值”函数,但是效果很差。我尝试了以图像作为输入(默认为2级)的多重阈值函数,获得了更好的效果。我在网上搜索,我发现的答案是,它们都实现了Otsu方法,并且应该返回相同的结果。所以,我想知道有什么区别,如果有,或者简单地说,为什么我得到不同的结果。在某些情况下,是否有不同的实现算法可以获得更好的结果?
我无法附加我正在处理的映像,因为它来自私有数据库,但我使用的代码如下(IM是图像,从.nii文件加载,是一个双矩阵,我还得到了度量输出,因为我在另一个任务中需要它):
[level, metric]=graythresh(IM);
bin_mask=imbinarize(IM,level);
figure
imshowpair(IM,bin_mask,'montage')
[level1, metric1]=multithresh(IM);
bin_mask1=imbinarize(IM,level1);
figure
imshowpair(IM,bin_mask1,'montage')灰谷结果:

多重阈值结果:

发布于 2017-08-18 09:18:20
正如我在评论中指出的那样,这两个函数的输出,即阈值,有一个不同的范围:
multithresh:与原始图像相同的范围graythresh:归一化范围,即0到1之间在multithresh的文档中也指出了这一点。
这些阈值与输入图像A的范围相同,与
graythresh函数不同,后者在0,1范围内返回规范化阈值。
https://stackoverflow.com/questions/45402730
复制相似问题