MATLAB中怎么用fill填充指定区域?如图所示,怎么填充直线与x轴的相交区域

MATLAB中怎么用fill填充指定区域?如图所示,怎么填充直线与x轴的相交区域例如程序a=[1-23-4];i=1:4;plot(i,a),然后fill怎么填充直线与x... MATLAB中怎么用fill填充指定区域?如图所示,怎么填充直线与x轴的相交区域例如程序a=[1 -2 3 -4];i=1:4;plot(i,a),然后fill怎么填充直线与x轴之间区域? 展开
 我来答
随便起名就行了
2016-10-27 · TA获得超过357个赞
知道小有建树答主
回答量:299
采纳率:91%
帮助的人:232万
展开全部

是不是要这种效果

其中fliplr函数为flip array left to right,此处fliplr(i)的输出结果为[4 3 2 1],详见doc fliplr。

分析:

fill函数的一般用法为 fill(X,Y,ColorSpec),

ColorSpec即颜色参数,注意不能省略,如上面的'r',这个不做进一步解释了。

fill的这个用法可以用来填充封闭区域,先举个简单例子,比如填充一个凸四边形,四边形的4个顶点坐标为(0,0),(1,3),(4,-3),(2,-5),如下图(a)

绘图函数为

 plot([0,1,4,2,0],[0,3,-3,-5,0]);

fill的用法为

fill([0,1,4,2],[0,3,-3,-1],'r');

效果如下图(b)

注意比较plot与fill的用法相似处与区别。

现在回头看开头那个i-a的例子,应该可以理解了吧,那个fill也可以写成

fill([1,2,3,4,4,3,2,1],[1,-2,3,-4,0,0,0,0],'r');

实际上就是描封闭图形的边界。

更多追问追答
追问

好的,
床前明月枕在梦
2018-04-10 · TA获得超过2万个赞
知道小有建树答主
回答量:235
采纳率:100%
帮助的人:7.7万
展开全部

 MATLAB 图像处理工具箱中提供了函数 roifill 用于对特定区域的填充,其语法格式为:

  •    J = roifill(I,c,r)

  •    J = roifill(I)

  •    J = roifill(I,BW)

  •    [J,BW] = roifill(⋯)

  •    J = roifill(x,y,I,xi,yi)

  •     [x,y,J,BW,xi,yi] = roifill(⋯)

1、其中 J=roifill(I,c,r)填充由向量 c、r 指定的多边形,c 和 r 分别为多边形各顶点的 x、y 坐标。它是通过求解边界的拉普拉斯方程,利用多边形边界点的灰度平滑的插值得到多边形内部的点。通常可以利用对指定区域的填充来“擦”掉图像中的小块区域。

2、J=roifill(I)表示由用户交互选取填充的区域。选择多边形的角点后,按 Enter 键表示结束,空格键或 Del 键表示取消一个选择。

3、J=roifill(I,BW)用掩模图像 BW 选择区域。

4、 [J,BW]=roifill(⋯)在填充区域的同时还返回掩模图像 BW。

5、 J=roifill(x,y,I,xi,yi)和[x,y,J,BW,xi,yi]=roifill(⋯)表示在指定的坐标系 xy 下填充由向量 xi和 yi 指定的多边形区域。按照这个理解就可以完成特定区域的填充。

语法格式的示例如下:

  • I=imread('eight.tif');
    %matlab自带的素材图,不需要指定路径,在MATLAB的工作路径下,C:\Program

  • Files\MATLAB\R2014a\toolbox\images\imdata

  • c=[222 272 300 270 221 194];

  • r=[21 21 75 121 121 75];

  • J=roifill(I,c,r);

  • figure,imshow(I),title('原图');

  • >> figure,imshow(J),title('填充后的图')

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式