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://blog.csdn.net/attilax

--Atiend

 

 

posted @ 2017-01-12 20:58  attilaxAti  阅读(33)  评论(0编辑  收藏  举报