如何使用Auto threshold imagej插件获得正确的输出?

时间:2016-02-28 15:12:03

标签: image matlab image-processing imagej

我尝试了以下代码,在那里我从目录中读取图像并使用ImageJ Auto Threshold插件来分割我的图像。任何人都可以使用imagej程序轻松完成,如下所示:

1- Open an image.
2- Then Go to : image->Adjust->Auto Threshold.
3- From methods drop list: Select the mean method.
4- Pick the white object on the black background. 

我的问题是我无法从Matlab正确调用此插件。我的Matlab代码如下:

javaaddpath 'C:\Program Files\MATLAB\R2013b\java\mij.jar'
javaaddpath 'C:\Program Files\MATLAB\R2013b\java\ij.jar'
MIJ.start

MIJ.run('Open...', 'path=[E:\\sun\\Endothelium Project\\Endothelium Code\\MIJ Code\\ENDOTHELIAL IMAGES\\12.bmp]');

MIJ.run('Threshold...','setAutoThreshold=mean');
MIJ.run('setOption=BlackBackground');
MIJ.run('Convert to Mask');    
SegmentedImage = (VorImage);
figure, imshow(SegmentedImage);

1 个答案:

答案 0 :(得分:0)

自动阈值(在GUI示例中)是与阈值... (在Matlab代码中)不同的命令。如果使用命令定位器,则可以看到此信息(按L,然后搜索所需的阈值)。

所以我猜测语法和选项因具体类别而异。

我没有使用MIJ,但run()命令看起来与IJ宏语言中使用的命令类似。

当我在斐济使用宏录制器时,我得到以下内容:

图片>调整>阈值... 使用Mean方法,深色背景:

setAutoThreshold("Mean dark");

图片>调整>使用Mean方法的AutoThreshold ,未选中复选框:

run("Auto Threshold", "method=Mean");

也许其中一个会起作用。实际上,看起来暗背景是AutoThreshold命令中的默认值,所以也许你可以完全忽略该setOption。

有关阈值命令here的更多信息。