使用MatLab切去图像的黑框

时间:2019-03-24 13:02:56

标签: image matlab

对于我的硕士论文,我必须使用Matlab检查几个相似结构的图像。我已经编码了实际评估。我的问题是图像的黑框厚度不同。这将导致评估被篡改。到目前为止,我是用手切掉边界的。因此,我想问问是否有人可以帮助我使用Matlab代码剪切此框架。

以下是示例图片, enter image description here

我尝试通过边缘插入(https://de.mathworks.com/help/images/ref/edge.html)解决此问题,但没有成功。

也许你可以给我一些建议

1 个答案:

答案 0 :(得分:0)

我不会使用您在问题中链接到的边缘检测。

相反,我将专注于缩小图像的尺寸并分析“缩小的图像”。在下面的代码中,您将看到一个将图像缩小为两条代表性线并分析该线以检测样本的示例。

% Load the image.
Img = imread('pfi36.png');

% Level to pass for the "edge" detection.
lvl = 50;

% Add a buffer around the edges.
buf = 10;

% Reduce the Image to 1D along the x and y driections respectively.
lrData = mean(Img,1); 
tdData = mean(Img,2);

% Find the indices of the edges.
indL = find(lrData>lvl,1,'first');
indR = find(lrData>lvl,1,'last');
indB = find(tdData>lvl,1,'last');

% Show the Cropped image.
newImg = Img(1:(indB+buf),(indL-buf):(indR+buf));
imshow(newImg);