- 179
- 0
- 约8.19千字
- 约 9页
- 2017-01-09 发布于重庆
- 举报
实验一 种子填充算法
实验目的:
掌握种子填充算法的思想,掌握队列的使用,掌握基于队列的四连通区域填充算法。
实验内容:
对于任意给定的多边形,在屏幕上显示该多边形,根据给定的多边形区域内种子,对多边形区域进行填充。多边形区域为四连通区域,要求采用链队存储种子点。
实验原理:
种子填充算法采用的边界定义是区域边界上所有像素均具有某个特定的颜色值,区域内部所有像素均不取这一特定颜色,而边界外的像素则可以具有和边界相同的颜色值。程序从(x,y)开始,先检测该点的颜色,如果它与边界色和填充色均不相同,就用填充色填充该点,然后检测相邻位置,以确定它们是否边界色和填充色,若不是,就填充该相邻点。这个过程延续到已经检测完边界范围内的所有像素为止。
实验步骤:
队列结构定义
种子堆栈的结构和队列结构,并定义相应变量。
确定多边形顶点坐标
在Initial函数中对顶点序列进行赋值。
生成多边形
即将由顶点序列所定义的多边形显示出来,也就实现了多边形的边界定义。
填充多边形区域
确定初始种子点
可以交互给出,例中直接给出。用指定的非填充颜色填充该像素,以标出初始种子点,同时将该点送入种子队列。
如果,种子队列非空,从队尾取出种子。
判断种子是否为边界色或填充色,如果不是填充该点,将该种子送入队列。
判断该点的四个相邻像素是否为边界色或填充色,如果不是,填充该像素,同时将该点送入种子队列。
重复步骤2),3),4)
实验效果:
程序实现:
SeedFillView.h
// SeedFillView.h : interface of the CSeedFillView class
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_SEEDFILLVIEW_H__A4808C3F_AA5A_438B_93CD_5295DF06ABBD__INCLUDED_)
#define AFX_SEEDFILLVIEW_H__A4808C3F_AA5A_438B_93CD_5295DF06ABBD__INCLUDED_
#if _MSC_VER 1000
#pragma once
#endif // _MSC_VER 1000
typedef struct QNode{POINT Data; struct QNode *next;}; //链表结构
typedef struct LinkQueue{QNode *front; QNode *rear; }; //队列结构
class CSeedFillView : public CView
{
protected: // create from serialization only
CSeedFillView();
DECLARE_DYNCREATE(CSeedFillView)
// Attributes
public:
CSeedFillDoc* GetDocument();
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CSeedFillView)
public:
virtual void OnDraw(CDC* pDC); // overridden to draw this view
virtual BOOL PreCreateWindow(CREATESTRUCT cs);
protected:
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
//}}AFX_VIRTUAL
// Implementation
public:
void Initial( POINT *pts, int ptn); //对多边形顶点序列进行赋值
void EdgeMark(POINT v1, POINT v2, COLORREF bcolor); //绘制该多边形
void QSeedFill( int ptn, POINT *pts, POINT seed, COLORREF fcolor, COLORREF bcolor
您可能关注的文档
最近下载
- 新解读《DL_T 408—2023电力安全工作规程 发电厂和变电站电气部分》最新解读.docx VIP
- 1.7 有多少名观众 教案 2025-2026学年北师大版数学三年级下册.docx VIP
- 第5章 比亚迪精诚钣喷质量管理体系(A0版).pdf VIP
- 学堂在线《大学生心理健康》课后作业单元考核答案.docx VIP
- 脑出血钻孔引流术后护理要点.pptx VIP
- 抖音美妆类短视频营销策略.pdf VIP
- 热敏罐灸疗法可复制.pdf VIP
- 《过敏性紫癜预防与处理指南(2025)解读》.docx VIP
- SL706-2015水库调度编制导则.pdf VIP
- 《美妆短视频的发展问题研究》文献综述1700字.docx VIP
原创力文档

文档评论(0)