我正试图找到这两张照片的断韧带。因为它得到的模式我可以使用conv2函数找到一般的破碎区域。但是,我真的很难想到如何让它告诉精确断裂的韧带。你能不能给我一些关于如何找到哪些韧带被破坏的想法?
因为我是这个网站的新用户,所以无法使用二维卷积结果发布更多照片。
答案 0 :(得分:1)
在每个完美的正方形内建立一个区域增长算法。 一旦你得到它,计算该部分的面积。
找到后,计算剩余区域。较大的值将是断裂的韧带:)
答案 1 :(得分:0)
这也可能是一种有趣的方式。我将第二张图片保存为'image.jpg'。
I = imread('image.jpg');
J = imbinarize(rgb2gray(I)); % Threshold to get a BW image.
BW = bwpropfilt(~J, 'Area', [35001, 1013283]);
imshow(BW)
显示
为了方便地选择区域阈值,我使用了https://www.mathworks.com/help/images/calculate-region-properties-using-image-region-analyzer.html
如果您没有最近的MATLAB版本,其中imbinarize
或bwpropfilt
不存在,您可以使用等效的阈值函数,regionprops
来提取该区域内的所有对象范围。
答案 2 :(得分:0)
img = imread('unbroke.jpg');
level = graythresh(rgb2gray(img));
BW = im2bw(rgb2gray(img),level);
BW2= imdilate(imerode(BW, ones(5)), ones(5));
BW3 = bwmorph(BW2,'remove');
figure, imshow(BW2), hold on[![enter image description here][1]][1]
[H,T,R] = hough(BW2);
P = houghpeaks(H,15,'threshold',ceil(0.3*max(H(:))));
x = T(P(:,2)); y = R(P(:,1));
lines = houghlines(BW2,T,R,P,'FillGap',5,'MinLength',7);
max_len = 0;
for k = 1:length(lines)
xy = [lines(k).point1; lines(k).point2];
plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');
% Plot beginnings and ends of lines
plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');
plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');
% Determine the endpoints of the longest line segment
len = norm(lines(k).point1 - lines(k).point2);
if ( len > max_len)
max_len = len;
xy_long = xy;
end
end
来自不间断图像的线条
破碎图像中的行
现在,您知道线段是做什么匹配的。或者在阈值内找到要连接的段对(相同的斜率+相同的x / y截距)。