实验三二维图形的区域填充

实验三二维图形的区域填充

ID:22284563

大小:198.67 KB

页数:6页

时间:2018-10-28

实验三二维图形的区域填充_第1页
实验三二维图形的区域填充_第2页
实验三二维图形的区域填充_第3页
实验三二维图形的区域填充_第4页
实验三二维图形的区域填充_第5页
资源描述:

《实验三二维图形的区域填充》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、西北农林科技大学实验报告学院名称:理学院专业年级:计算131姓名:学号:课程:计算机图形学报告日期:2015.12.11实验三二维图形的区域填充一.实验目的1)加深对填充算法的理解,分析比较种子填充和边缘填充的差异。2)掌握二维图形区域种子填充的原理和算法。二.实验内容用种子填充算法编写程序实现区域填充,并能在计算机上编译运行,正确地实现任意多边形边界的单色填充。三.实验内容1)对任意多边形的几何形状进行分析,选定比较合适的算法模型选用种子填充算法:种子填充算法又称为边界填充算法。其基本思想是:从多边形区域的一个内点开始,由内向

2、外用给定的颜色画点直到边界为止。如果边界是以一种颜色指定的,则种子填充算法可逐个像素地处理直到遇到边界颜色为止。步骤:①在画图板中画出要填充的图形。②在matlab中读入该图片。③对读入的图片二值化,使之变为01矩阵。①以行为单位进行扫描,若遇到0,就把该位置的列坐标记到数组a中。②以行为单位进行扫描,给每行的a(i,l)列到max(a(i,:))列进行着色。2)画出程序流程确定种子点元素(X,y)判断种子点(x,y)是否满足非边界、非填充色的条件,若满足条件,以y作为当前扫描线沿当前扫描线向左、右两个方向填充,直到边界。确定新

3、的种子点:检查与当前扫描线y上、下相邻的两条扫描线上的像素。若存在非边界、未填充的像素,则返回上一步进行扫描填充。直至区域所有元素均为填充色,程序结朿。3)编写程序的源程序;functiontianchong(x,y)x=[40704024]y=[10308034]n=length(x);P=1;A=[0,0];x=[x,x(1)];y=[y,y⑴】;fori=1:n[a,k]=Bresenhamline(x(i),y(i),x(i+1),y(i+1));p=p+k;A=[A;a];endA=A(2:p,:);m=p-1;yO=

4、min(A(:,2));y1=max(A(:,2));yy=yo;whileyy

5、);x=xO;y=yO;plot(x,y’’b*.);a=[xy】;k=1;if(abs(dx)>=abs(dy))p=-abs(dx);whileabs(x)〜=abs(x1)if(dx〉=0)x=x+1:endif(dx<0)x=x-1:endP=P+d2;ifp〉0if(dy〉=O)y=y+1:endif(dy<0)y=y-1:endP=p-d1;endholdon;a=[a;xy];k=k+1;%pause(0.01);plot(x,y’’b*.);endendif(abs(dx)

6、whileabs(y)〜=abs(y1)if(dy〉=O)y=y+1:endif(dy<0)y=y-1:endp=p+d1;ifp〉0if(dx〉=O)x=x+1:endif(dx<0)x=x-1:endP=p-d2;endholdon;a=[a;xy];k=k+1;%pause(0.01);plot(x,y,V);endendholdon;4)编辑源程序并进行调试。程序运行图像如下:80一.实验总结本次实验主要是对填充算法的学习,让我对填充算法有了更多理解,对MATLAB也有了更丰富的认识。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。