`
butnet
  • 浏览: 88387 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

封闭区域填充,太慢了...

阅读更多
今天用JAVA写一个封闭图形的填充,
我采用种子填充算法,
/**
*@param x 初始点x坐标
*@param y 初始点y坐标
*@param ccolor 填充颜色
*@param bcolor 初始点颜色
*@param image 图形
*/
public void setColor(int x,int y,Color ccolor,Color bcolor,java.awt.image.BufferedImage image){
ArrayList list=new ArrayList();//边界保存,保存下一次要处理的
//装入原始点
list.add(x);
list.add(y);
while(list.size()!=0){
//填充边界颜色
for(int i=0;i
//if(image.getRGB(list.get(i),list.get(i+1))!=ccolor.getRGB())
image.setRGB(list.get(i),list.get(i+1),ccolor.getRGB());
}
int size=list.size();
int byLength=0;
while(size>0){
int tempx,tempy;
tempx=list.get(0);
tempy=list.get(1);
if(tempx>0){
if(image.getRGB(tempx-1, tempy)==bcolor.getRGB()){//取左边点
list.add(tempx-1);
list.add(tempy);
byLength++;
//System.out.println("("+(tempx-1)+","+tempy+")");
}
}
if(tempy>0){
if(image.getRGB(tempx, tempy-1)==bcolor.getRGB()){//取上边点
list.add(tempx);
list.add(tempy-1);
byLength++;
//System.out.println("("+tempx+","+(tempy-1)+")");
}
}
if(tempx
if(image.getRGB(tempx+1,tempy)==bcolor.getRGB()){//取右边点
list.add(tempx+1);
list.add(tempy);
byLength++;
//System.out.println("("+(tempx+1)+","+tempy+")");
}
}
if(tempy
if(image.getRGB(tempx, tempy+1)==bcolor.getRGB()){//取左边点
list.add(tempx);
list.add(tempy+1);
byLength++;
//System.out.println("("+tempx+","+(tempy+1)+")");
}
}
if(byLength==0)return;
list.remove(0);
list.remove(0);
size-=2;
}
if(byLength==0)break;
}
}
//运算速度太慢了.
//不知道...windows那个画图的填充是怎么实现的,觉得它的速度不错.
分享到:
评论

相关推荐

    武汉学院计算机图形学论文-基于扫描线填充算法的改进型区域填充算法实现.docx

    5. 区域像素间的相关性分析:对任意一个封闭区域,分析其内点的相关性,以确定区域填充算法的规律。 6. 扫描线算法现状分析:对当前扫描线算法的优缺点进行分析,并提出了一种新的扫描线填充算法。 7. 区域填充应用...

    高速封闭区域填充floodfill2,即:油漆桶或选择区域并填充颜色魔术棒工具程序2

    打开任意位图文件后填充封闭区域。 可设定填充颜色,可设定填充敏感度。 为保证代码的完整性和统一性,我直接用可该资源在CodeProject的原始压缩包。 编译不过去的是有一个cs文件的命名空间不对,自己修改一下。 有...

    计算机图形学 区域填充PPT课件.pptx

    计算机图形学中的区域填充是图像处理和图形绘制中一个重要的技术,主要目的是将特定区域内所有像素设置为同一属性,如颜色。区域填充广泛应用于各种图形软件和计算机辅助设计(CAD)系统中,使得用户能够方便地改变...

    基于Web的CAD系统中最小不规则封闭区域的识别方法.pdf

    在WebCAD系统中,图形填充功能(Hatch)是不可或缺的,该功能要求软件能够识别出鼠标点击处所在的最小封闭区域,从而进行准确的填充和面积计算。最小不规则封闭区域识别方法是实现这一功能的关键,它涉及到了二维曲线...

    VB区域填充.rar

    对于区域填充,我们通常会有一个或多个边界点,这些点连接起来形成一个封闭的几何形状,如矩形、圆形或任意多边形。 2. **线填充算法**: 文件名“线填充”表明该程序可能采用了一种线性扫描转换算法,如Bresenham...

    填充任意封闭区域(2KB)...

    标题中的“填充任意封闭区域(2KB)”是指在编程中实现的一种图形处理技术,它通常与图像处理或图形用户界面(GUI)设计有关。在VB(Visual Basic)中,这个功能可能是一个小程序或者函数,用于在图形界面上填充用户...

    区域填充三种方法的原理

    "区域填充三种方法的原理" 区域填充是指在一个有界区域内填充某些颜色或图案。区域填充有多种方法,本文将详细介绍三种常用的区域填充方法:多边形扫描线填充算法、边缘填充算法和种子填充算法。 多边形扫描线填充...

    C#填充任意封闭区域(FloodFill)

    本篇文章将深入探讨“C#填充任意封闭区域(FloodFill)”这一主题,我们将采用队列数据结构来实现这个功能。队列是一种先进先出(FIFO)的数据结构,它在填充算法中的应用能有效提高效率。 填充算法,也被称为...

    程序设计区域填充.rar

    在计算机科学和编程领域,"程序设计区域填充"是一个重要的概念,特别是在图形处理和图像算法中。区域填充是一种技术,用于以某种颜色或图案填充一个图形的闭合区域。这项技术广泛应用于各种软件,如画图程序、游戏...

    区域填充算法(多边形的填充)

    区域填充算法是计算机图形学中的一个基础且重要的概念,它主要应用于图像处理、绘图软件以及游戏开发等领域。这种算法的目的是将用户在屏幕上画出的多边形或选定的像素区域染上特定的颜色,使得视觉效果更加完整和...

    OpenCV实现的区域填充扫描线算法

    在区域填充的应用中,扫描线算法通常用于检测和连接像素,以识别并填充封闭的图形区域。 在OpenCV中,实现区域填充扫描线算法通常涉及以下几个步骤: 1. 边缘检测:首先,我们需要确定填充的边界。这可以通过各种...

    计算机图形学实验之区域填充

    计算机图形学实验中的“区域填充”是一个重要的概念,它涉及到图像处理、图形渲染以及光栅图形系统。在光栅系统中,图像通常由像素阵列表示,区域填充就是对特定区域内所有的像素点进行颜色填充,使得该区域呈现出...

    在MFC的对话框类中向闭合区域填充颜色

    标题“在MFC的对话框类中向闭合区域填充颜色”所指的就是如何在C++编程中,通过MFC库实现在对话框类的特定闭合区域内填充颜色。 闭合区域填充通常涉及图形绘制操作,这在MFC中可以通过CWnd或CDialog派生类的成员...

    区域填充和图形的裁剪.doc

    区域填充是指将一个封闭的区域填充颜色,使其变得可见。图形的裁剪是指将一个图形剪裁到一个指定的区域内,使其在该区域内显示。 知识点1:内外测试填充算法 内外测试填充算法是一种常用的区域填充算法。该算法的...

    计算机图形学-区域填充.ppt

    区域填充是计算机图形学中的一种基本算法,用于将一个封闭区域内的所有像素设置为某种属性,例如颜色、纹理等。 在计算机图形学中,区域的概念是指一组相邻而且又相连的像素,而且具有相同属性的封闭区域。区域填充...

    二维图形区域填充

    二维图形区域填充是计算机图形学中的一个重要概念,它在各种应用程序中都有广泛的应用,比如图像处理、游戏开发、工程制图等。这个上机程序旨在让学生掌握如何在二维平面上有效地填充图形区域,以实现颜色的均匀分布...

    tuxing.zip_4连通_easyx画线_区域填充_种子区域填充_种子填充

    计算机图形学--区域填充算法的实现 一、实验目的和要求: 1、掌握区域填充算法基本知识 2、理解区域的表示和类型,能正确区分四连通和八连通的区域 3、了解区域填充的实现原理,利用Microsoft Visual C++ 6.0(及...

    建筑工程常用表格20213.2.15油箱封闭前检查签证表.doc

    建筑工程常用表格20213.2.15油箱封闭前检查签证表.doc

    计算机图形学 区域填充PPT学习教案.pptx

    计算机图形学中的区域填充是图像处理和计算机图形学领域中的一个重要概念,主要涉及对屏幕上一组相邻且相连的像素,即区域,进行颜色或其他属性的统一设置。区域填充广泛应用于图像编辑软件、游戏开发以及可视化应用...

    区域填充算法源码

    区域填充算法是图像处理中的一个基础且重要的技术,主要用于改变图像中特定颜色或像素值的区域,将其统一填充为新的颜色。在这个“区域填充算法源码”中,我们将深入探讨这个概念及其在图像处理中的应用。 区域生长...

Global site tag (gtag.js) - Google Analytics