Atitit Seed-Filling种子填充算法attilax总结
2017-01-12 20:57
155 查看
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://blog.csdn.net/attilax
--Atiend
种子填充的原理,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://blog.csdn.net/attilax
--Atiend
相关文章推荐
- Atitit Seed-Filling种子填充算法attilax总结
- atitit. 日志系统的原则and设计and最佳实践(1)-----原理理论总结.
- Atitit. js mvc 总结(2)----angular 跟 Knockout o99 最佳实践
- atitit. js 跨界面 页面 web cs 传值方法总结
- Atitit.spring体系结构大总结
- atitit.java给属性赋值方法总结and BeanUtils 1.6.1 .copyProperty的bug
- atitit.web ui 结构建模工具总结
- atitit.集合的filt操作细分 filter总结
- atitit. js 跨界面 页面 web cs 传值方法总结
- Atitit. BigConfirmTips 控件 大数据量提示确认控件的原理and总结O9
- atititt.java定时任务框架选型Spring Quartz 注解总结
- atitit.ajax bp dwr 3.的注解方式配置使用流程总结 VO9o.....
- Atitit .html5刮刮卡的gui实现总结
- Atitit. BigConfirmTips 控件 大数据量提示确认控件的原理and总结O9
- atitit...触发器机制 ltrigger mechanism sumup .的总结O8f
- Atitit .html5刮刮卡的gui实现总结
- atitit. 日志系统的原则and设计and最佳实践(1)-----原理理论总结.
- atitit js 开发工具 ide的代码结构显示(func list) outline总结
- Atitit. Attilax企业框架 AEF的发展里程总结
- Atitit.spring体系结构大总结