给出如下图片。这个动态图的特点是:背景不变;背景的任何位置都没有被全程遮挡。原则上,我们可以完整的构造出背景图片。本文用到的工具是Mathematica。
工具/原料
1
电脑
2
Mathematica
方法/步骤
1
读取动态图,发现这是一幅15帧的动态图。pics = Import['D:\\我的图片\\0.gif']
2
把这些图片相加,效果如下。Total[pics/Length[pics]]
3
取平均,可以防止白耀化:Total[pics/15]这基本上就可以认为是图像的背景了。
4
直接进行图像配准,也是可以的。Total[pics] // ImageAdjust
5
上面其实不严格。因为图像之所以看不到前景,是因为前景的影响变为原来的十五分之一,但是前景还是存在的。比如,隔2张图片,选取一张,前景的虚影就显示出来了:Total[pics[[#]] & /@ {2, 5, 8, 11, 15}] // ImageAdjust
6
有一种方法似乎可以实现分离背景,那就是统计同一像素上,在不同时间的像素值。出现次数多的那个像素值,就是背景像素值。datas = ImageData[#] & /@ pics;pic = ImageData[pics[[1]]];Table[pic[[i, j]] = MaximalBy[{Count[#[[i, j]] & /@ datas, #], #} & /@ Union[#[[i, j]] & /@ datas], First][[1, 2]], {i, 277}, {j, 500}];pic[[;; , ;; , ;; 3]] // Image
上一篇:弧线怎么画才正确
下一篇:陌陌中怎么更换动态背景图