2

我想在灰度图像的两个边缘之间画一条线并估计它的长度。需要估计股骨头的直径。我尝试使用 houghlines 并最终绘制(见下文),但无法正确编写代码。我是matlab的新手,这可能就是原因。将感谢任何提示!

for img = imread(sample);
figure,imshow(img)
hold on
p1 = [10,100];
p2 = [100,20];
plot([p1(2),p2(2)],[p1(1),p2(1)],'Color','r','LineWidth',2);
hold off;
pause;
end
4

2 回答 2

0

如果你知道线的起点和终点

p1 = [ 10 100];
p2 = [100  20];

那么像素距离将简单地遵循勾股定理:

dist = sqrt( (p2-p1) * (p2-p1).' );

然后将其乘以一个像素代表的多少毫米以获得实际距离。

如果您不知道要点,但手动绘制它们(可能借助计算机视觉,但从不完全依赖它:),请参阅 bdecaf 的答案。

于 2012-11-15T10:05:31.993 回答
0

我不确定你是如何获得积分的。假设它不是微不足道的。

对于类似的问题,我的用户总是希望能够手动标记点(他们不太信任计算机视觉)。代码如下所示:

pos = ginput(2);
l = line(pos(:,1),pos(:,2),'Color','r','Marker','o'); % just for visualization
distance = norm(pos(1,:)-pos(2,:));
于 2012-11-15T10:29:32.550 回答