可以在这里找到一个示例图像:
http://www.auntminnie.com/user/images/content_images/su_cto/2008_08_07_15_16_16_735_mcnitt.lidcnodule.jpg
我下载了这个镜像,并将其重命名为oiu.jpg。我的代码是:
现在我得到了两个区域,一个是小区域(1),另一个是大区域(2)
输出如下所示:
http://i.stack.imgur0.com/8So8G.jpg
我只想得到较小的区域,其他的都是黑色的。我尝试了Gabor滤波,但我做不到。我也可以使用形态学运算。请帮帮忙。并对所采用的中值滤波和阈值方法进行了评价。谢谢
这是一个输入文件,"output.jpg“是对应的输出文件。谢谢
发布于 2016-01-15 18:49:29
在你的原始代码中,我看到用户可以与你在脚本中输入的dicom数据进行交互,因为当图像没有灰度时,它会返回一条消息。
如果在代码运行时可以进行交互,您可以尝试要求用户从dicom数据集的一个图像中选择一个区域,以便在那里搜索同一切片中的肿瘤,或者在数据集的前一个或后一个切片中搜索肿瘤。您可以尝试使用"imcrop“函数来执行此操作。
另一方面,我猜也有机会要求用户选择蒙版中不需要的白色部分,然后运行代码来消除蒙版的这一部分。
希望这个建议能帮助你开发一个这样做的代码。
发布于 2016-01-15 19:21:32
使用你发布的图片,这是我得到的:

这很简单。您可以应用形态运算&选择适合您的目的的strel运算符。
img = im2bw(img);
img_dil = imdilate(img , strel('disk', 10 ));
img_erd = imerode(img_dil , strel('disk', 4 ));
figure, subplot(2,2,1), imshow(img), title('original Image');
subplot(2,2,2), imshow(img_dil), title('dilated Image');
subplot(2,2,3), imshow(img_erd), title('eroded Image');在此之后,您可以使用bwareaopen
n = 3000; % change n according to your requirement.
img_out = bwareaopen(img_erd, n);
img_out = imsubtract (img_out,img);https://stackoverflow.com/questions/34805088
复制相似问题