【发布时间】:2014-11-06 17:04:04
【问题描述】:
我有一个原始图像,并且仅在一些连接的组件上我想使用 SIFT 功能。我能够根据 matlab 帮助文件提取这些区域并将它们转换为逻辑格式:
本节介绍如何创建二进制掩码来定义 ROI。 但是,任何二进制图像都可以用作掩码,前提是 二值图像与被过滤的图像大小相同。
这是原图
这是我想要的部分,我能够以逻辑格式提取:
现在我只想对原始图像的这个单连通分量应用 SIFT 函数。
我使用了createMask 函数,格式与帮助文档中的说明相同:
img = imread(word.jpg);
h_im = imshow(img);
e = word_bw; %this is the image to be used as mask
BW = createMask(e,h_im);
我收到错误:Undefined function 'createMask' for input arguments of type 'logical'.
如何以一种允许我仅将函数应用于原始图像中的该区域的方式使用我的蒙版?
【问题讨论】:
-
那个叫
createMask的神奇功能在哪里?它必须在path中作为.m文件。 -
@Divakar 对不起?你问我是从哪里拿到代码的?好吧,它来自这个页面:mathworks.co.uk/help/images/…
-
BW = img.*word_bw怎么样,假设img是灰度或二进制图像,word_bw是二进制数组? -
createMask专门用于获取两个句柄(一个是交互式 ROI 对象),并输出一个逻辑掩码。它对图像没有任何作用。word_bw;已经是一个逻辑掩码。 -
@nkjt 嗯,我明白了,所以这就是我不能使用它的原因。如果我已经是一个面具,你能建议我如何使用它来实现我想要的。谢谢
标签: image matlab image-processing mask image-segmentation