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.选做:针对简单递归算 ...
随机推荐
- python之获取微信服务器的ip地址
# -*- coding: cp936 -*- #PYTHON 27 #xiaodeng #获取微信服务器的ip地址 import urllib url='https://api.weixin.qq. ...
- std::accumulate使用的一个小细节
今天使用std::accumulate模板函数的时候出现了一个错误,特此记录一下. #include <iostream> #include <numeric> int mai ...
- rtl-sdr在win7和ubuntu16.04的安装
硬件准备 RTL2832+R820T2 usb dongle x 1 Long wire antenna x 1 USB电视棒的购买: 在淘宝上搜索"软件无线电"或"rt ...
- Swoole源代码学习记录(十三)——Server模块具体解释(上)
Swoole版本号:1.7.5-stable Github地址:https://github.com/LinkedDestiny/swoole-src-analysis 最终能够正式进入Server. ...
- 自己使用过比较好用的VSCode插件
C/C++ [ms-vscode.cpptolls] 智能推导,调试和代码浏览 C/C++ Clang Command Adapter [mitaki28.vscode-clang] 使用 ...
- Oracle死锁导致的tomcat抛损坏的管道异常
今天遇到个问题,就是由于清空数据库的数据,设备采集客户端一直在往服务器上发采集回来的数据,但是由于某种原因,数据库的某语句死锁了. 数据库的死锁语句是通过这个SQL查出来的:select sql_te ...
- iOS中判断网络是否联网
#import "AppDelegate.h" #import "ViewController.h" #import "Reachability.h& ...
- java实现https ssl请求url
import java.io.*;import java.net.*;import java.security.*;import java.security.cert.*;import java.ut ...
- 比较JSF、Spring MVC、Stripes、Struts 2、Tapestry、Wicket
2009-06-23 Java Web层框架--JSF.Spring MVC.Stripes.Struts 2.Tapestry和Wicket他们各自的优点和缺点: JSF 优点: ◆Java EE标 ...
- Java中timer的schedule()和schedualAtFixedRate()函数的区别
本文主要讨论java.util.Timer的schedule(timerTask,delay,period)和scheduleAtFixedRate(timerTask,delay,period)的区 ...