多语言展示
当前在线:1287今日阅读:165今日分享:48

【图像处理】从动态图里面分离背景

给出如下图片。这个动态图的特点是:背景不变;背景的任何位置都没有被全程遮挡。原则上,我们可以完整的构造出背景图片。本文用到的工具是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

推荐信息