目录
一.月落视频原理:
视频的形成主要通过帧图像从源图像中提取出月亮,通过泊松图像编辑算法(算法原理参考:泊松编辑进行图像融合具体实现代码_Alocus_的博客-CSDN博客),对月亮进行处理;然后将处理后的月亮嵌入到目标图像中的不同的合适位置;通过位置的变化,营造月落的感觉;最后将这些图像合成为一个视频。(中间帧如下)
二.月变视频原理:
从源图像中提取出不同形状的月亮,通过泊松图像编辑算法,对月亮进行处理;然后将处理后的月亮嵌入到目标图像中的固定的位置;通过月亮形状的变化,营造月变的感觉;最后将这些图像合成为一个视频。(中间帧如下)
三.实验步骤及操作:
月落步骤及操作:
- 从源图像中提取月亮,具体操作为:确定提取月亮的宽和高,确定源图像中月亮的提取初始点,最后从源图像中将目标区域像素值提取出来。
- 设计月亮落下的轨迹,具体操作为:确定月亮初始点,确定月亮落下点,确定中间经过的某一点,通过三点计算出轨迹方程。如下(不唯一)
x1 = 900 ,y1 = 375
x2 = 434 ,y2 = 1
x3 = 724 ,y3 = 251
方程:y = ax2 + bx + c,其中a1=-0.000338,b1 = 1.254 ,c1 = -479.4。
- 将提取的月亮使用泊松编辑进行融合,使得提取出的月亮与目标图像较完美融合
- 通过方程,将提取出的图像嵌入到目标图像中的合适位置,具体操作为:起始点x=434,将x依次加一,求出对应的y。最后将月亮嵌入到目标图像的(x,y)位置,生成多种月亮位置不同的图像。
- 在x = 900 处开始,所提取出的月亮不再是完整的,即呈现半圆型。经过上述步骤后,也会生成一定数量的图片。
- 合成视频,具体操作为将上述生成的图片,按照顺序排列之后,使用合成软件进行合成,最终生成视频结果
月变步骤及操作:
1. 确定源图像中所提取月亮的初始坐标
2. 确定月亮的嵌入位置,为确定的合适值。
3. 设计月亮变化的方程,具体操作为:将所确定的月亮的初始坐标的x值逐像素增加,直到提取的区域中不含有月亮为止。
4. 将提取的所有月亮图片进行优化,具体操作为:使用泊松图像编辑将提取出的图片与目标图像的背景进行融合,使得其更加完美地融合入目标图像。
5. 将优化处理之后的月亮图片嵌入到2中位置。
- 合成视频,具体操作为将上述生成的图片,按照顺序排列之后,使用合成软件进行合成,最终生成视频结果。
四.实验数据:
源图像:
目标图像:
月落中间结果图:
提取出的月亮图示:
提取的背景图示:
泊松编辑处理后的月亮图示:
合成结果图示(部分):
月变中间结果图:
提取出的月亮图示:
泊松处理之后的月亮图示:
生成结果图示:
五.遇到的问题:
初始,对于月亮如何运动只有个大概的思路,到具体实现时,需要考量到多种因素:如起始位置,落点位置,落点附近月亮如何变化的处理等。而对于月亮落山时的变化引出了第二个创意,即月变。这个思路在实现时,效果并不完美,如下面所述,这些问题目前有解决的思路,并未实际实现及解决。
六.总结:
通过生成的结果来看,泊松图像编辑能够较好地将两张图像融合到一起,而且没有突兀的感觉。最后生成的视频,虽然有一定的瑕疵,但总体来看具有一定的效果。
通过本次实验,对泊松编辑法有了更加深刻的理解,下一步工作是能否通过泊松编辑方法实现新颖的应用。
另外,不足之处是:
- 像素级的处理限制了月亮移动的精度,此时月亮下落的轨迹不够平滑,呈现阶梯状下降。
2. 生成的月亮右侧会出现阴影。
3. 月亮的月牙形状不够完美。
七.改进思路:
对于第一个不足:
提高图像的分辨率,或者通过插值提高图像的大小,处理之后再缩放到 想要的大小。
另外,可能可以通过图像金子塔 对各个级别图像进行处理,提高 源和目标图像 的融合度,还可减小像素大小带来的限制。
对于第二个不足:
从源图像只截取含月亮的图像,且截取的大小随着截取的变化而变化;截取的形状不再是长方形,而是近似月牙的形状。
对于第三个不足:
提高图像的分辨率,或者通过插值提高图像的大小,处理之后再缩放到 想要的大小。 另外,可能可以通过图像金子塔 对各个级别图像进行处理,提高 源和目标图像 的融合度,减小像素大小带来的限制
八.源代码以及生成结果、中间结果、参考论文
最终视频:通过泊松融合生成的视频-互联网文档类资源-CSDN下载
源代码,中间结果,参考论文:基于泊松编辑融合的视频生成-互联网文档类资源-CSDN下载