Atitit Seed-Filling种子填充算法attilax总结
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总结的更多相关文章
- CGA填充算法之种子填充算法
CGA填充算法之种子填充算法 平面区域填充算法是计算机图形学领域的一个很重要的算法,区域填充即给出一个区域的边界 (也可以是没有边界,只是给出指定颜色),要求将边界范围内的所有象素单元都修改成指定的颜 ...
- 种子填充算法描述及C++代码实现
项目需要看了种子填充算法,改进了算法主要去除面积小的部分.种子填充算法分为两种,简单的和基于扫描线的方法,简单的算法如下描述(笔者针对的是二值图像): (1)从上到下,从左到有,依次扫描每个像素: ( ...
- openGL实现图形学扫描线种子填充算法
title: "openGL实现图形学扫描线种子填充算法" date: 2018-06-11T19:41:30+08:00 tags: ["图形学"] cate ...
- Atitit 图像处理30大经典算法attilax总结
Atitit 图像处理30大经典算法attilax总结 1. 识别模糊图片算法2 2. 相似度识别算法(ahash,phash,dhash)2 3. 分辨率太小图片2 4. 横条薯条广告2 5. 图像 ...
- JAVA实现种子填充算法
种子填充算法原理在网上很多地方都能找到,这篇是继上篇扫描线算法后另一种填充算法,直接上实现代码啦0.0 我的实现只是实现了种子填充算法,但是运行效率不快,如果大佬有改进方法,欢迎和我交流,谢谢! 最后 ...
- atitit.安全的签名摘要 算法attilax总结
atitit.安全的签名 算法attilax总结 1. MD5 (不推荐)结果是128位二进制,只有转为16进制字符串是32位 1 2. 使用sha1算法加密后的密串长度有40位,相对更安全一些.Sh ...
- UVA 572 -- Oil Deposits(DFS求连通块+种子填充算法)
UVA 572 -- Oil Deposits(DFS求连通块) 图也有DFS和BFS遍历,由于DFS更好写,所以一般用DFS寻找连通块. 下述代码用一个二重循环来找到当前格子的相邻8个格子,也可用常 ...
- [计算机图形学] 基于C#窗口的Bresenham直线扫描算法、种子填充法、扫描线填充法模拟软件设计(二)
上一节链接:http://www.cnblogs.com/zjutlitao/p/4116783.html 前言: 在上一节中我们已经大致介绍了该软件的是什么.可以干什么以及界面的大致样子.此外还详细 ...
- Open gl 的不规则图形的4联通种子递归填充和扫描线种子递归填充算法实现
实验题目:不规则区域的填充算法 实验目的:验证不规则区域的填充算法 实验内容:利用VC与OpenGL,实现不规则区域的填充算法. 1.必做:实现简单递归的不规则区域填充算法. 2.选做:针对简单递归算 ...
随机推荐
- CentOS7 vsftp使用ftp客户端登录时不同的用户进入到不同的文件夹方法
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=777 #anon_upload_enable=YES #anon_ ...
- Flash:移除匿名函数监听器EventListener
private function handleCreationComplete():void { sampleButton.addEventListener(MouseEvent.CLICK, cre ...
- OpenCV学习代码记录——canny边缘检测
很久之前学习过一段时间的OpenCV,当时没有做什么笔记,但是代码都还在,这里把它贴出来做个记录. 代码放在码云上,地址在这里https://gitee.com/solym/OpenCVTest/tr ...
- Nosql数据库的四大分类及分布式数据库CAP原理
1. Nosql数据库的四大分类 2. 分布式数据库CAP原理 2.1 关系型数据库事务遵循的ACID规则 首先了解传统关系型数据库事务遵循的ACID规则: 原子性(Atomicity):事务里的所有 ...
- linux shell 脚本攻略学习3
1.Bash中的READ命令 #读取n个字符存入变量 read -n number_of_chars variable_name 示例: amosli@amosli-pc:~$ read -n var ...
- TCP三次握手连接
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认: 第二次握 ...
- 【Android】Android实现监听返回键,主键(HOME),菜单键
目录结构: contents structure [+] 简介 监听 返回键 监听 主键(Home键) 监听 菜单键 一.简介 本篇文章介绍如何在Android中实现监听返回键,主键,菜单键.一般情况 ...
- 【Oracle 】tablespace 表空间创建和管理
1.表空间的概述 1. 表空间是数据库的逻辑组成部分. 2. 从物理上讲,数据库数据存放在数据文件中: 3. 从逻辑上讲,数据库是存放在表空间中,表空间由一个或者多个数据文件组成. 2.oracle的 ...
- 在Linux CentOS 6.6上安装RedisLive
Real time dashboard for redis 安装必须软件 1.安装pip到指定的python版本下面: curl -O https://bootstrap.pypa.io/get-pi ...
- Android的API版本和名称对应关系
Android版本名和API Level关系全称 Android的版本 Android版本名称Code name Android的API level Android 1.0 (API level 1) ...