Atitit 图像处理--图像分类 模式识别 肤色检测识别原理 与attilax的实践总结
1.1. 五中滤镜的分别效果。。
/AtiPlatf_cms/src/com/attilax/clr/skinfltAll.java
1.2. 基于肤色的图片分类
/AtiPlatf_cms/src/com/attilax/clr/moveBySkinLow.java
生成所有图片的肤色百分比,存入csv文件。。
然后可以移动前面的20%的文件,人工二次检查
可以方便的把不便上传的文件与日益上传的文件区分开。。
1.3. 性能提升
图像处理性能比较慢,图像的处理比较消耗cpu,不知可否有方法提升??
或许可以缩小图片到标准化大小,然后点数吗??
大概100张图片需要10s。。1w张图片就需要 10分钟。。
1.4. --code
private static void getBlackPercentTxt(String d) throws IOException {
ExecutorService urlPool = Executors.newFixedThreadPool(3);
final List<Map> li = Lists.newArrayList();
Function<String, Object> closure = (String f) -> {
Runnable command = () -> {
Map m = Maps.newHashMap();
m.put("f", f);
BufferedImage src = imgx.toImg(f);
SkinFilter1 SkinFilter1a = new SkinFilter1();
BufferedImage dest = SkinFilter1a.filter(src, null);
float blackPoints = imgx.getBlackPercent(dest);
m.put("blkpst", blackPoints);
li.add(m);
n++;
System.out.println(n);
};
urlPool.execute(command);
return f;
};
//
// tOrder(li);
// li.sort((Map m)->{
//
// });
dirx.traveV3(d, closure);
urlPool.shutdown();
try {
urlPool.awaitTermination(20, TimeUnit.HOURS);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//urlPool.sh
new Linq(li).orderby("blkpst", "asc");
filex fx= new filex("c:\\blkpst_asc.txt");
for (Map map : li) {
String line=map.get("blkpst").toString()+","+map.get("f").toString();
fx.appendLine_flush_safe(line);
}
fx.closeSF();
}
参考
肤色检测 - shangyaowei的专栏 - 博客频道 - CSDN.NET.html
肤色检测算法 - 基于不同颜色空间简单区域划分的皮肤检测算法 - songhhll的专栏 - 博客频道 - CSDN.NET.html
基于肤色的人脸检测_PerpLtx1988_新浪博客.html
人脸检测---基于肤色检测的实现.html
五种基于RGB色彩空间统计的皮肤检测算法 - 流浪的鱼 - 博客频道 - CSDN.NET.html
java 肤色检测 - epleone的专栏 - 博客频道 - CSDN.NET.html
Atitit 图像处理 常用8大滤镜效果 Jhlabs 图像处理类库
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )
汉字名:艾提拉(艾龙), EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
Atiend