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++代码实现

    项目需要看了种子填充算法,改进了算法主要去除面积小的部分.种子填充算法分为两种,简单的和基于扫描线的方法,简单的算法如下描述(笔者针对的是二值图像): (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.安全的签名摘要 算法attilax总结

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

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

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

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

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

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

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

随机推荐

  1. python之获取微信服务器的ip地址

    # -*- coding: cp936 -*- #PYTHON 27 #xiaodeng #获取微信服务器的ip地址 import urllib url='https://api.weixin.qq. ...

  2. std::accumulate使用的一个小细节

    今天使用std::accumulate模板函数的时候出现了一个错误,特此记录一下. #include <iostream> #include <numeric> int mai ...

  3. rtl-sdr在win7和ubuntu16.04的安装

    硬件准备 RTL2832+R820T2 usb dongle x 1 Long wire antenna x 1 USB电视棒的购买: 在淘宝上搜索"软件无线电"或"rt ...

  4. Swoole源代码学习记录(十三)——Server模块具体解释(上)

    Swoole版本号:1.7.5-stable Github地址:https://github.com/LinkedDestiny/swoole-src-analysis 最终能够正式进入Server. ...

  5. 自己使用过比较好用的VSCode插件

    C/C++  [ms-vscode.cpptolls]    智能推导,调试和代码浏览 C/C++ Clang Command Adapter [mitaki28.vscode-clang]   使用 ...

  6. Oracle死锁导致的tomcat抛损坏的管道异常

    今天遇到个问题,就是由于清空数据库的数据,设备采集客户端一直在往服务器上发采集回来的数据,但是由于某种原因,数据库的某语句死锁了. 数据库的死锁语句是通过这个SQL查出来的:select sql_te ...

  7. iOS中判断网络是否联网

    #import "AppDelegate.h" #import "ViewController.h" #import "Reachability.h& ...

  8. java实现https ssl请求url

    import java.io.*;import java.net.*;import java.security.*;import java.security.cert.*;import java.ut ...

  9. 比较JSF、Spring MVC、Stripes、Struts 2、Tapestry、Wicket

    2009-06-23 Java Web层框架--JSF.Spring MVC.Stripes.Struts 2.Tapestry和Wicket他们各自的优点和缺点: JSF 优点: ◆Java EE标 ...

  10. Java中timer的schedule()和schedualAtFixedRate()函数的区别

    本文主要讨论java.util.Timer的schedule(timerTask,delay,period)和scheduleAtFixedRate(timerTask,delay,period)的区 ...