-1

我得到了如下图所示的结果。如您所见,有些边缘并非都是笔直的。我希望这张图片与这张相似(我不确定为什么会出现灰色阴影。也许是因为我手动提取了它?)。但是,这里的主要内容是类似于白色边缘。我尝试使用形态学运算,但没有太大改进。

任何想法如何解决这个问题?

谢谢。

4

1 回答 1

3

我将您的数据加载到一个名为“toBeSolved”的变量中。

rawData1 = importdata('to be solved.JPG');
[~,name] = fileparts('to be solved.JPG');
newData1.(genvarname(name)) = rawData1;
% Create new variables in the base workspace from those fields.
vars = fieldnames(newData1);
for i = 1:length(vars)
    assignin('base', vars{i}, newData1.(vars{i}));
end

现在这是一个索引图像,因此有 3 帧,如下所示:

>> size(toBeSolved)
ans =
   452   440     3

每一帧的数据内容看起来都是一样的,所以也许你关心的只是1帧的灰度信息?如果是这样的话,让我们只取第一帧:

data1 = im2double(toBeSolved(:,:,1)); 

然后将数据归一化为图像中的最大值:

data1 = data1 / max(data1(:));

现在看一下网格视图,我们看到,正如预期的那样,边缘周围存在明显的噪声和损坏:

在此处输入图像描述

边缘的外观表明尝试对数据进行阈值操作。我对阈值进行了实验,发现 0.13 产生了一些改进:

data2 = double(data1 > 0.13);

这使:

在此处输入图像描述

或灰度,imshow(data2):

在此处输入图像描述

我不知道这对您的应用程序是否可以接受,边缘并不完美,但它似乎比您开始时有所改进。

顺便说一句,我还检查了您的“已解决”数据,这些数据似乎也具有与“toBeSolved”文件相同的潜在噪声水平和边缘缺陷,但至少在视觉上,该图像中的损坏更难看到由于边缘周围的灰度值。

于 2013-11-30T01:25:28.297 回答