如何将matlab中的图形转换为对象?

如何将matlab中的图形转换为对象?,matlab,object,figure,Matlab,Object,Figure,对不起,如果我的问题没有完全理解…我将通过描述我的问题来澄清它 我有一个二值图像中的物体几乎是弯曲的和长的。我想画一条从它的顶点到它的最低点的线,然后,或者在曲线和直线之间填充封闭区域来测量它的面积,或者为了同样的目的,求出曲线中每个点和直线之间的距离。。。我知道,使用以下绘图方式绘制直线很容易: imshow(fnnShrink) hold on plot([TLx , BRx ],[TLy ,BRy],'-', 'MarkerFaceColor' , 'b') hold off m = (

对不起,如果我的问题没有完全理解…我将通过描述我的问题来澄清它

我有一个二值图像中的物体几乎是弯曲的和长的。我想画一条从它的顶点到它的最低点的线,然后,或者在曲线和直线之间填充封闭区域来测量它的面积,或者为了同样的目的,求出曲线中每个点和直线之间的距离。。。我知道,使用以下绘图方式绘制直线很容易:

imshow(fnnShrink)
hold on
plot([TLx , BRx ],[TLy ,BRy],'-', 'MarkerFaceColor' , 'b')
hold off
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
这给了我在matlab图形中很好的彩色线条,但我不能在这条线上进行任何测量的问题只是为了显示。即使像这里的一位朋友告诉我的那样尝试handler,它仍然会给我线的长度,只是没有帮助。 我尝试的一个解决方案是通过使用线方程将像素设置为1,自己画一条线,并在图像中创建新的对象线,如下所示:

imshow(fnnShrink)
hold on
plot([TLx , BRx ],[TLy ,BRy],'-', 'MarkerFaceColor' , 'b')
hold off
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轴上的上点和下点之间的距离相对较大,则该解决方案适用于某些图像,问题是当距离非常小时,斜率为负,我在上点和下点之间只得到离散线,而不是连续的一组点。。。那是我的问题。。如果你可以的话,请帮我…

事实上,作为matlab中所有的绘图函数,imshow不仅仅显示绘图。它还返回一个句柄,相当于指向所创建对象的指针。所以,你只需要

new_object = imshow(...)

除了imshow

之外,您是否可以发布到目前为止的代码,您是否尝试了“imline”功能?亲爱的用户,我认为imline的工作原理与plot相同……不,imline允许您在图像上画一条线并返回线的位置。但是现在你编辑了你的问题,它看起来不像你需要的。我看不出这与问题有什么关系。你看不到matlab中的图像是一个对象与问题有什么关系。我如何将图像转换为对象???真的吗???亲爱的blue_注意,我已经试过你说的了,但在我的情况下,它只是给我线条的长度…我不知道如何使用imshow创建的图像对象的句柄来给你线条的长度。它可以让你控制alpha层、窗口大小等。与它显示的图像内容中的高级功能无关。好的,让我给你写信,看看我是否正确理解你,我是这样写的:NewL=imshowfnnShrink然后是plot函数的其余部分,我得到了一个变量NewL,其中有一个值,表示我绘制的线的长度。是否有不同的方法使用此变量或对象?