硕士

《计算机视觉导论》 Assignment-1

朱心洲 22151326

[email protected]

在本次作业中,要求使用图像为自己制作一个拼接肖像画,实现思路如下:

  • 1.通过爬取百度图片上相应素材图片,作为生成拼接肖像画的素材
  • 2.通过计算图片的 HSV 色彩空间,与生成图像的一小块进行对比,根据HSV值接近程度,确定使用合适的图片
  • 3.统一处理素材图片至统一大小,根据图片大小确认粗细细粒度
  • 4.遍历原图的每个像素点,找到与这个像素点的平均 HSV 值最接近的那张图片,并用那张图片来替换这个小块;

一、图片素材的获取

以[风景]、[人物]、[山]、[校园]、[森林]为标签爬取百度图片的数据,相应代码在spider.py文件里,相应图片存储在image文件夹里,共6000张照片。


百度图片示例

爬取图片示例

二、计算图片的HPV值,将所有图片大小归一

 由于RGB 色彩空间不能方便的比较颜色之间的相似度,于是在处理这一类问题的时候我们更多的是使用 HSV 色彩空间。 HSV 色彩空间也是由三个分量组成的,分别是:
  • Hue(色调)
  • Saturation (饱和度)
  • Value (明度)
    其中,我们定义max = max(R, G, B),min=min(R,G,B)

其中v=max

  • 在计算出v后,计算s,其中s的计算方式为


    计算s
  • 在计算s后,计算h,h的计算方式为:


    计算h

    在完成hsv值的计算后,根据切片大小,将每张图片转换成同样大小。

三、开始生成拼图

  • 遍历我们生成的计算了hsv的文件夹,获得里面所有图片的平均 HSV 值,保存在一个 list 中;
  • 接着我们将原始图片按照像素分为一小块一小块,每一个小块会计算他的平均 HSV 值;
  • 接着我们在上面生成素材的平均 HSV 值的 list 中,找到与这个小块的平均 HSV 值最接近的那张图片,并用那张图片来替换这个小块;
  • 依次对整个图形进行这样的操作,这样就可以使用素材图像生成一个图像;

四、结果对比

4.1 原图展示

选取本人某个背景图为肖像图生成素材,其中着粉色上衣的为本人


原图

4.2细粒度图片生成。

在通过设置分片大小为1010,图片大小为30003000,共90000张照片组成,每张照片最多允许重复20次,所生成的图片如下图所示

图片拼接肖像画

在经过填充原图作为背景,优化展示效果,最终结果如下图所示:
图片拼接肖像画(原图背景填充)

4.3粗粒度图片生成。

在通过设置分片大小为100100,图片大小为30003000,共900张照片组成,每张照片最多允许重复20次,所生成的图片如下图所示。

粗粒度(无背景填充)

在经过填充原图作为背景,优化展示效果,最终结果如下图所示:


粗粒度,背景填充

五、 优化方案&总结

在本次作业中,通过制作个人拼接肖像画,使我更进一步在计算机中图像表示方法,图像相似度计算、搜索方案,图像中信息特征的提取并且通过自身实践完成了该项目,开启了我对计算机视觉的兴趣。
同时,在完成实验后,对该算法进行了优化;

  • 在合成图片时,限制了每张图片的使用次数,避免了一张图片出现次数太多的情况
  • 在搜索相似图片时,使用二分查找的方法,极大提高了程序执行速度
  • 在最后合成图片时,使用原图填充背景图,提升图片可看性

你可能感兴趣的:(硕士)