Atitit Seed-Filling种子填充算法attilax总结

时间:2022-10-20 10:27:54

Atitit Seed-Filling种子填充算法attilax总结

种子填充的原理,4联通与8联通区域的选择。。

三个队列

waitProcessPixList

tempPixList

ProcessedPixList

/atiplat_img/src/com/attilax/cca/SeedFillAlgo.java

public static void main(String[] args) throws FileExistEx {

BufferedImage img = imgx.toImg("C:\\000money\\b.jpg");

Pix px = new Pix(new Point(0, 0));

List<Pix> area = new SeedFillAlgo(img).getAreaByPix(px, img, 30);

for (Pix pix : area) {

int c=new Color(0,0,0).getRGB();

img.setRGB(pix.point.x, pix.point.y, c);

}

imgx.save(img, "C:\\000money\\c_blk+"+filex.getUUidName()+".jpg");

System.out.println(area.size());

}

public List<Pix> getAreaByPix(Pix px, BufferedImage mBufferedImage, int threotNum) {

List<Pix> areaPixs = Lists.newArrayList();

areaPixs.add(px);

List<Pix> waitPixs = Lists.newArrayList();

waitPixs.add(px);

List<Pix> processedPixs = Lists.newArrayList();

while (waitPixs.size() > 0) {

//System.out.println(AtiJson.toJson(waitPixs));

Pix top1PxFrmWaitPxsList = waitPixs.get(0);

logger.info(" now pix:"+AtiJson.toJson(top1PxFrmWaitPxsList));

List<Pix> neibsPixs = getneibsPixs(top1PxFrmWaitPxsList);

//neibsPixs.removeAll(processedPixs);

// List<Pix>

//---------neibsPixs minus  processedPixs

neibsPixs_minusProcessedPixs(neibsPixs, processedPixs);

List<Pix> simlerNeibPixs = get_simlerNeibPixs(neibsPixs, top1PxFrmWaitPxsList, threotNum);

logger.info(" simlerNeibPixs pix:"+AtiJson.toJson(simlerNeibPixs));

//---------simlerNeibPixs into waitPixs

addPixsList2anotherPixsList(simlerNeibPixs,waitPixs);

waitPixs.remove(0);

logger.info(" waitPixs pix:"+AtiJson.toJson(waitPixs));

logger.info(" waitPixs_cont:"+ waitPixs.size());

//------------areaPixs.addAll(simlerNeibPixs);

addPixsList2anotherPixsList(simlerNeibPixs, areaPixs);

logger.info(" areaPixs pix:"+AtiJson.toJson(areaPixs));

//processedPixs.add(next);

addPix2anotherPixsList_P2l(top1PxFrmWaitPxsList, processedPixs);

logger.info(" processedPixs pix:"+AtiJson.toJson(processedPixs));

logger.info(" processedPixs_cont:"+processedPixs.size());

}

return areaPixs;

}

作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher

捕鸟王"Bird Catcher 王中之王King of Kings 虔诚者Pious 宗教信仰* Defender of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak

简称:: Emir Attilax Akbar 埃米尔 阿提拉克斯 阿克巴

全名::Emir Attilax Akbar bin Mahmud bin  attila bin Solomon bin Adam  Al Rapanui

埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门 本 亚当  阿尔 拉帕努伊

常用名:艾提拉(艾龙),   EMAIL:1466519819@qq.com

头衔:uke总部o2o负责人,全球网格化项目创始人,uke宗教与文化融合事务部部长,Uke部落首席大酋长,uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,奶牛科技cto ,uke 首席cto uke波利尼西亚区大区连锁负责人,克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke汤加王国区域负责人。布维岛和南乔治亚和南桑威奇群岛大区连锁负责人

Uke软件标准化协会理事长理事长 uke终身教育学校副校长

Uke 数据库与存储标准化协会副会长 uke出版社编辑总编

转载请注明来源:attilax的专栏   http://www.cnblogs.com/attilax/

--Atiend

Atitit Seed-Filling种子填充算法attilax总结的更多相关文章

  1. CGA填充算法之种子填充算法

    CGA填充算法之种子填充算法 平面区域填充算法是计算机图形学领域的一个很重要的算法,区域填充即给出一个区域的边界 (也可以是没有边界,只是给出指定颜色),要求将边界范围内的所有象素单元都修改成指定的颜 ...

  2. 种子填充算法描述及C&plus;&plus;代码实现

    项目需要看了种子填充算法,改进了算法主要去除面积小的部分.种子填充算法分为两种,简单的和基于扫描线的方法,简单的算法如下描述(笔者针对的是二值图像): (1)从上到下,从左到有,依次扫描每个像素: ( ...

  3. openGL实现图形学扫描线种子填充算法

    title: "openGL实现图形学扫描线种子填充算法" date: 2018-06-11T19:41:30+08:00 tags: ["图形学"] cate ...

  4. Atitit 图像处理30大经典算法attilax总结

    Atitit 图像处理30大经典算法attilax总结 1. 识别模糊图片算法2 2. 相似度识别算法(ahash,phash,dhash)2 3. 分辨率太小图片2 4. 横条薯条广告2 5. 图像 ...

  5. JAVA实现种子填充算法

    种子填充算法原理在网上很多地方都能找到,这篇是继上篇扫描线算法后另一种填充算法,直接上实现代码啦0.0 我的实现只是实现了种子填充算法,但是运行效率不快,如果大佬有改进方法,欢迎和我交流,谢谢! 最后 ...

  6. atitit&period;安全的签名摘要 算法attilax总结

    atitit.安全的签名 算法attilax总结 1. MD5 (不推荐)结果是128位二进制,只有转为16进制字符串是32位 1 2. 使用sha1算法加密后的密串长度有40位,相对更安全一些.Sh ...

  7. UVA 572 -- Oil Deposits(DFS求连通块&plus;种子填充算法)

    UVA 572 -- Oil Deposits(DFS求连通块) 图也有DFS和BFS遍历,由于DFS更好写,所以一般用DFS寻找连通块. 下述代码用一个二重循环来找到当前格子的相邻8个格子,也可用常 ...

  8. &lbrack;计算机图形学&rsqb; 基于C&num;窗口的Bresenham直线扫描算法、种子填充法、扫描线填充法模拟软件设计(二)

    上一节链接:http://www.cnblogs.com/zjutlitao/p/4116783.html 前言: 在上一节中我们已经大致介绍了该软件的是什么.可以干什么以及界面的大致样子.此外还详细 ...

  9. Open gl 的不规则图形的4联通种子递归填充和扫描线种子递归填充算法实现

    实验题目:不规则区域的填充算法 实验目的:验证不规则区域的填充算法 实验内容:利用VC与OpenGL,实现不规则区域的填充算法. 1.必做:实现简单递归的不规则区域填充算法. 2.选做:针对简单递归算 ...

随机推荐

  1. STL整理

    sort 升序排列: iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素. iterator up ...

  2. Javascript offsetLeft详情

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  3. HTTP协议 概述

    本文主要说明一些 Http 相关的基本概念和基本知识,主要针对像我一样的初学者,知识主要来自于<Http 权威指南> 除了分享这些基本知识之外,笔者也是为将来找工作复习之用.(协议就是协议 ...

  4. C&num;模拟登录的htmlHelper类

    public class HTMLHelper { /// <summary> /// 获取CooKie /// /// </summary> /// /// <para ...

  5. block 的演练和使用

    概念 block 是 C 语言的 是一种数据类型,可以当作参数传递 是一组预先准备好的代码,在需要的时候执行 动画 block 回顾 self.demoView.center = CGPointMak ...

  6. Golang 语言的单元测试和性能测试&lpar;也叫 压力测试&rpar;

    Golang单元测试对文件名和方法名,参数都有很严格的要求. 例如: 1.文件名必须以xx_test.go命名 2.方法必须是Test[^a-z]开头(T必须大写),func TestXxx (t * ...

  7. 强大的数据库工具 dbForge Studio ForMySql

    优点: 1.可以将MySql数据库操作仿 sqlserver 的操作方式,便于操作 2.强大的比较拷贝能力.菜单栏上的 Comparison 的功能,可以比较两个数据库的差别,同时可以将数据库Copy ...

  8. java结合testng,利用excel做数据源的数据驱动实例

    数据驱动部分,是自动化测试常用部分,也是参数化设计的重要环节,前面分享了,mysql.yaml做数据源,那么再来分享下excel做数据驱动 思路: 先用POI读取excel.解析读取数据,返回list ...

  9. C&num; String 与 StringBuilder

    String 字符串不可变性,每次为字符串进行增删或重写赋值会销毁原来的字符串,重新开辟内存空间,因此是非常消耗资源的 字符串可以看做是 char 数组,因此可以用 foreach 对其进行遍历,或者 ...

  10. Python3入门机器学习经典算法与应用

    <Python3入门机器学习经典算法与应用> 章节第1章 欢迎来到 Python3 玩转机器学习1-1 什么是机器学习1-2 课程涵盖的内容和理念1-3 课程所使用的主要技术栈第2章 机器 ...