个性化阅读
专注于IT技术分析

计算机图形:填充区域基元

本文概述

区域填充是图像或区域的填充过程。填充可以是边界区域或内部区域, 如图2所示。边界填充算法用于填充边界, 泛洪填充算法用于填充内部。

填充区域基元

边界填充算法

该算法使用递归方法。首先, 考虑称为种子的起始像素。该算法检查边界像素或相邻像素是否着色。如果相邻像素已被填充或着色, 则将其保留, 否则填充它。使用四个连接的方法或八个连接的方法完成填充。

边界填充算法

四个连接的方法比八个连接的方法更合适。

1.四种连接的方法:在这种方法中, 将测试左, 右, 上, 下像素。

2.八种相连的方法:在这种方法中, 选择了左, 右, 上, 下和四个对角线。

边界可以通过先从左和右看像素来检查。然后通过从上到下查看像素来检查像素。该算法需要时间和内存, 因为需要一些递归调用。

递归边界填充算法的问题

当某些内部像素已经用颜色填充时, 有时可能无法正确填充区域。该算法将检查该边界像素是否填充, 并且将发现已经填充, 因此递归过程将终止。由于另一个内部像素未填充, 这可能会有所不同。

因此, 在应用算法之前, 请检查所有像素颜色。

算法

Procedure fill (x, y, color, color1: integer)
int c;
c=getpixel (x, y);
if (c!=color) (c!=color1)
{
	setpixel (x, y, color)
	fill (x+1, y, color, color 1);
	 fill (x-1, y, color, color 1);
	fill (x, y+1, color, color 1);
	fill (x, y-1, color, color 1);
}

赞(0)
未经允许不得转载:srcmini » 计算机图形:填充区域基元

评论 抢沙发

评论前必须登录!