jQuery火箭图标返回顶部代码

jQuery火箭图标返回顶部代码

滚动滑动条后,查看右下角查看效果。很炫哦!!

适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗.

照片中人物背景分离再融合任务

 

任务:在一个照片中将人和背景分离,然后将人放大,通过评估算法评估后放在图中的合适位置,达到人放大而不影响整体效果。

 

任务分析:将照片中的人和背景分离应该会用到抠图技术,将人物扣出来后,怎么处理图片下的背景,想法是直接将附近的像素插值到图片所占的背景下;

将人放大,暂时的想法是直接将人物图像的像素所占的空间放大,可能会导致图像模糊,后面再看看有什么方法放大人物而且能较好的保持清晰度;

将人物和背景融合,会用到图像融合的知识,然后用评估算法评估融合后的图像,图像质量评价(参考原图,还是无参考图像质量评价)。

 

拟采取步骤:

1、查找合适的抠图算法,将人物和背景分离。

2、找图片放大的算法,将抠出的人像放大,人像尽量保持清晰。

3、找到合适的图像融合算法,将人物和背景融合。

4、找到合适的图像质量评估算法,评估融合图像,达到人放大而不影响整体效果。

 

一、(1)刚开始的时候认为应该找抠图算法,查了一些资料,比较经典的是贝叶斯抠图(Bayesian Matting)。输入一张图片时,由贝叶斯抠图算法得到的是α矩阵(矩阵元素的类型应该double,大小与trimp和原始图像一致),然后再读入一张新的背景图片,并将前景(经由α矩阵)融合到新的背景中。α矩阵不是我们想要的前景图片,很难对它做放大处理。先暂时放弃这个算法。

     (2)感觉如果直接做图像分割或许会更好些,找到一个可能不错的算法,grab Cut图像分割,因为只需要在目标外面画一个框,把目标框起来,就可以完成良好的分割。虽然这个算法有些缺点,但是值得一试。

     (3)由于grab Cut图像分割大多数代码都是基于OpenCV的,在电脑上配置OpenCV环境实在太麻烦了。还是尝试先试一下贝叶斯抠图,找到了matlab代码,做了一些实验,首先用作者提供的数据调试出了结果,跟预期的差不多。

          但是有个问题,就是程序出了输入源图像之外,还必须输入与之对应的Trimap图(TriMap就是三元图,它是和待分割图像同等大小的一张图,但图中的像素只有三个取值,0、128和255)。然后再输入背景图片,将目标物与背景融合。我选择纯白色作为背景图,这样后面对目标物处理的时候就不会有什么不好的影响(不过话说回来,可不可以直接在原图像上将目标物直接放大呢?算了,既然任务说的是先分离,那就一步一步来吧)。

          然后我尝试了从其他地方获得图片和对应的Trimap图,程序可以正常运行,也就是说可以把目标物扣出来。这说明这个程序代码还是没什么问题的,但是找了不少资料都没有发现怎么从图像中获得对应的Trimap图。而最后的任务应该不会提供Trimap图,如果用这个抠图方法的话,必须解决这个问题。

        经过几天的搜索查阅,明白了一些东西,尝试了一些方法。首先,Trimap图应该是直接用photoshop画出来的,所以我不打算采用这个方法,看了一些大牛的博客,我决定不用贝叶斯抠图,虽然它最终也可以得到结果,但是还是感觉用ps画图挺麻烦的。找到了一个不错关于抠图的网站,网站上面有不少抠图的论文、数据集和源代码,甚至还有各种抠图效果的评价。链接是 http://www.alphamatting.com/code.php 

       还找到了一篇不错的论文《 A Closed Form Solution to Natural Image Matting 》,也是关于抠图的,并且找到了作者的源代码和数据集。不同的抠图系统所接受的用户输入一般有两种形式——trimap或scribbles。scribble的交互方式比trimap的方式要简单,尤其当对于图像前景轮廓比较复杂的时候。而这个抠图算法采用的就是scribbles图,只需要在原图上画上几笔就可以了。根据作者的数据集实验的结果如下:

 

除此之外,我做了一点小小的改动,可以直接把前景图和背景图分别保存下来。这样就可以直接进行下一步的计划了。效果图如下:

                     

         用作者的数据集实验出来的效果显然不错,但是当我尝试用其他数据集并且自己画scribbles图的时候,产生的结果就不太理想了。看了下论文,原来这个方法对 scribble 的位置很‘敏感’,不是随便画几笔都能有很好的效果的。

        果然,之前效果太差的原因还有我画的scribbles图有问题,试了好多次之后终于发现windows的画图工具的颜料板的颜色要一致,要么都是白色,要么都是黑色。下面是调整后产生的结果:

       

       嗯,看起来还算不错,虽然还没弄清楚原理,但是至少这个任务目标的效果基本达到了,终于可以开始第二阶段的任务了。

 

posted @ 2018-05-19 22:42  寒水浮云  阅读(4161)  评论(0编辑  收藏  举报