对不起,如果我的问题没有完全理解......我将通过描述我的问题来澄清它......
我的对象(在二进制图像中)几乎是曲线而且很长。我想绘制一条从顶点到最低点的线,然后在我的曲线和直线之间填充封闭区域以测量其面积或找到曲线中每个点与线之间的距离以达到相同的目的......我知道通过使用以下情节很容易绘制一条线:
imshow(fnnShrink)
hold on
plot([TLx , BRx ],[TLy ,BRy],'-', 'MarkerFaceColor' , 'b')
hold off
这给了我很好的彩色线条(在matlab图中),但问题是我无法在此线上执行任何测量(仅用于显示)。即使在这里尝试处理器作为朋友之一告诉我,它仍然只给我行的长度(没有帮助)。 我尝试的一个解决方案是通过使用线方程将像素设置为1并在图像中创建新的对象线来自行创建一条线,如下所示:
m = (TLy - BRy) / (TLx - BRx); % Always Same
for i = TLx : 1 : BRx
fnnShrink(round(m * (i - TLx) + TLy) , round(i)) = 1;
fTest(round(m * (i - TLx) + TLy) , round(i)) = 1;
end
如果距离(在上方和下方之间)(在X轴上)相对较大,这个解决方案适用于某些图像,问题是当距离非常小(斜率为负)时,我只得到离散线和不连续的(上下点之间的一组点数)......我的问题..如果可以的话请帮帮我......
答案 0 :(得分:-1)
实际上,imshow,因为matlab中的所有绘图功能,不仅显示了情节。它还向创建的对象返回一个句柄(相当于指针的matlab)。所以,你只需要
new_object = imshow(...)
而不仅仅是imshow