我尝试了以下代码,在那里我从目录中读取图像并使用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);
答案 0 :(得分:0)
自动阈值(在GUI示例中)是与阈值... (在Matlab代码中)不同的命令。如果使用命令定位器,则可以看到此信息(按L,然后搜索所需的阈值)。
所以我猜测语法和选项因具体类别而异。
我没有使用MIJ,但run()
命令看起来与IJ宏语言中使用的命令类似。
当我在斐济使用宏录制器时,我得到以下内容:
图片>调整>阈值... 使用Mean方法,深色背景:
setAutoThreshold("Mean dark");
图片>调整>使用Mean方法的AutoThreshold ,未选中复选框:
run("Auto Threshold", "method=Mean");
也许其中一个会起作用。实际上,看起来暗背景是AutoThreshold命令中的默认值,所以也许你可以完全忽略该setOption。
有关阈值命令here的更多信息。