首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MATLAB图像处理与滤波

MATLAB图像处理与滤波
EN

Stack Overflow用户
提问于 2016-01-15 13:50:47
回答 2查看 92关注 0票数 0

可以在这里找到一个示例图像:

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“是对应的输出文件。谢谢

EN

回答 2

Stack Overflow用户

发布于 2016-01-15 18:49:29

在你的原始代码中,我看到用户可以与你在脚本中输入的dicom数据进行交互,因为当图像没有灰度时,它会返回一条消息。

如果在代码运行时可以进行交互,您可以尝试要求用户从dicom数据集的一个图像中选择一个区域,以便在那里搜索同一切片中的肿瘤,或者在数据集的前一个或后一个切片中搜索肿瘤。您可以尝试使用"imcrop“函数来执行此操作。

另一方面,我猜也有机会要求用户选择蒙版中不需要的白色部分,然后运行代码来消除蒙版的这一部分。

希望这个建议能帮助你开发一个这样做的代码。

票数 0
EN

Stack Overflow用户

发布于 2016-01-15 19:21:32

使用你发布的图片,这是我得到的:

这很简单。您可以应用形态运算&选择适合您的目的的strel运算符。

代码语言:javascript
复制
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

代码语言:javascript
复制
n = 3000; % change n according to your requirement.
img_out = bwareaopen(img_erd, n);
img_out = imsubtract (img_out,img);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34805088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档