百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

马赛克可以被去掉吗?这篇文章从数字图像处理的角度给你终极解答

bigegpt 2024-08-14 15:02 2 浏览

导语

又是一秋高气爽日,小宅同学兴致勃勃地打开了他喜欢的视频观看了起来。不过,令小宅同学感到遗憾的是,视频竟然被打了马赛克!真可谓大煞风景,兴致全无。

于是,一个令无数人疑惑的问题在此时也涌上了小宅的心头:马赛克可以被去掉吗?马赛克怎么被去掉?

什么是马赛克

马赛克(Mosaic),原来是建筑专业名词,它是指一种装饰艺术,通常使用许多小石块或有色玻璃碎片拼成图案,作为一种装饰用来增加建筑的美观程度。

而时过境迁,时代的发展又赋予了马赛克一层新的含义,那就是作为一种图像、视频处理手段,来将影像特定区域的色阶劣化并造成色块打乱的效果,这种操作通常的目的是使源图像区域的信息难以辨认。由于被处理后的区域模糊图像看上去像一个个小格子组成,所以便形象的称这种画面为马赛克。

图一,传统马赛克装饰。

数字图像马赛克原理

马赛克的处理过程并不复杂。对于一张数字图像来说,它是由若干像素点按一定顺序组合而成的,而对图像进行马赛克处理,就是将选定区域的图像按照一定比例分成若干块小图像,在每一块中取各自中心点的像素的数值来取代小块图像其它像素点的数值。对所有小块图像进行相同的操作,就对图像选定的区域进行了马赛克的处理。

图二,人物的眼部被打上了马赛克。

尽管有的算法细节可能有所出入,但是图像马赛克操作的原理都是一样的,即它是一个减少信息的操作。一幅原始图像上的每一个像素点都是这副图像上唯一的存在,这个像素点在这幅图像上包含着唯一的信息。而一幅图像所包含的所有信息就是由这些像素点来提供的。当取一部分图像把它马赛克处理时,这部分图像的若干个像素点数值便会被一个值所不保留原数值的取代。

当向人们展示被取代后的像素点时,人们看到的只是取代原像素点的数值的值,而被取代的像素点数值,已经无从获取了。

图三,一块区域(a)的若干个像素点的数值,(b)中为被取代后的这块区域的像素点数值。

如果从(b)观察,原来像素点的数值已经无从得知了。

一个哲学问题,为什么要去掉马赛克

为什么要去掉马赛克?原因很明显!就是因为图像中的马赛克消除了一些画面信息,而这些画面包含的信息读者想知道,但无从得知。

1. 如果说,一幅图像虽然被经过了马赛克的处理,但是马赛克所消除的画面是我们不关心的内容,那我们也没有恢复图片的必要。

图四,认出图像中的数字。(a)为原图,(b)的左上角打了马赛克,虽然(b)的左上角被马赛克处理了,但是并不妨碍我们读取关键信息,即(a)中可以读取到数字6,(b)图也可以。

2. 马赛克处理有轻重之分,对于一幅高分辨率的图片来说,轻微的马赛克有时候并不会起到消除某一部分信息的作用。此时,我们也没有必设法恢复图片。

图五,认出图中的数字。(a)为原图,(b)经过轻微的马赛克处理,我们依然可以观察出(b)中数字。

3. 规则的图片、包含人们熟知的信息的图片,它的一部分被打了马赛克,但是可以根据其它的部分推测出模糊部分的图像,所以我们也没有必要去试图恢复图片。

图六,认出图中的数字。(a)为原图,(b)中间部分的一些区域被马赛克处理,不过我们依然可以推测出(b)中数字。

上述三种情况都是没有必要去除马赛克的场景,或者说马赛克并没有影响到我我们摄取关键信息。那么,若是一幅马赛克图像使我们设法去恢复它,其中必然包含了我们想知道但不知道的信息,同时也无法推测出来结果的情况。比如,你想知道下面女子的长相是时,你可能就会产生去掉马赛克的想法。

有的时候,一些图片即使被打了马赛克,也可以辨认、推测出想要获取的原图像信息。此时,也就不会有人想要去试图恢复被马赛克处理过的图片了。

图象被马赛克处理后可以复原吗?

“马赛克”处理相当于对图像信号的进行比原始数据更低频率的采样。如果这个采样频率比原始数据的频率的二倍还要低,那么必然产生不可逆的数据损失。也就是说,两倍以上的“马赛克”处理都会产生不可逆的数据损失。即说明马赛克是去不掉的。

这里要特别区别一下,很多人会以为马赛克就是“贴”在一幅画上的,马赛克的作用只是遮挡了原画面,其实从上面的文章中就可以看出,马赛克区域并不是遮挡,而是“改变“,你看到的画面信息就是整幅画所包含的信息,背后并没有什么隐藏。

现在去掉马赛克的方法,它们的实质是什么?

马赛克是不可逆损失信息。但某些情况下,被马赛克处理后的图像似乎可以被“复原“,这是什么原因?

现在对马赛克的还原主要有以下两种方式。

1. 可以被推测出的图像画面

一幅图像中某一部分被马赛克处理过了,而在这副图像中更广的范围里,都有同质化的信息包围着马赛克,那么依据周围图像中清晰的部分,可以填补图像中马赛克不部分,或者依靠周围清晰的图像,在被马赛克处理的地方构造新的清晰的图像,以达到“复原”马赛克处理的效果。

例如:在一块木地板上打块马赛克,这个时候想要复原它就可以借助木地板的其他部分的清晰图像来将模糊部分的图像重新填补。

图七,(a)为原图,(b)的中间部分被打了马赛克,(c)恢复后的图像。然而(a)与(c)比较来说,可以明显的观察到它们是不同的,然而(c)图却看不到被马赛克处理的痕迹。

2. 在巨大的图像库中依靠机器学习,来猜测出缺失信息

机器学习系统依靠海量的类型图片进行训练,让系统“学习”到相应信息。而后系统再根据之前的训练,猜测出缺失的细节信息,来对马赛克图像的的模糊部分进行填充。

例如:谷歌大脑发布的一款名为超强像素递归的AI系统。它能够提高马赛克后图像画面的分辨率。

图 八,左边为马赛克后的图片,中间为AI系统推测的图片,右边是原图。

可见,所谓的复原并不是真正的复原,只是一种填补、推测、计算而已。

总结

实际上,如果你对图像领域有所涉猎,就会知道,马赛克是一种不可逆算法,当对一幅图像进行马赛克处理后,所见即所见,仅依靠一张被处理的图片,它再也不可能被复原了。

笔者曾经作为一位精力旺盛的青年时,对如何去除马赛克“研究”、“探索”颇多。然而时光几何,皆匆匆流去。当我熟知数字图像背后的机理时,我已经明白,再也回不到过去了。

相关推荐

了解Linux目录,那你就了解了一半的Linux系统

大到公司或者社群再小到个人要利用Linux来开发产品的人实在是多如牛毛,每个人都用自己的标准来配置文件或者设置目录,那么未来的Linux则就是一团乱麻,也对管理造成许多麻烦。后来,就有所谓的FHS(F...

Linux命令,这些操作要注意!(linux命令?)

刚玩Linux的人总觉得自己在演黑客电影,直到手滑输错命令把公司服务器删库,这才发现命令行根本不是随便乱用的,而是“生死簿”。今天直接上干货,告诉你哪些命令用好了封神!喜欢的一键三连,谢谢观众老爷!!...

Linux 命令速查手册:这 30 个高频指令,拯救 90% 的运维小白!

在Linux系统的世界里,命令行是强大的武器。对于运维小白而言,掌握一些高频使用的Linux命令,能极大提升工作效率,轻松应对各种系统管理任务。今天,就为大家奉上精心整理的30个Linu...

linux必学的60个命令(linux必学的20个命令)

以下是Linux必学的20个基础命令:1.cd:切换目录2.ls:列出文件和目录3.mkdir:创建目录4.rm:删除文件或目录5.cp:复制文件或目录6.mv:移动/重命名文件或目录7....

提高工作效率的--Linux常用命令,能够决解95%以上的问题

点击上方关注,第一时间接受干货转发,点赞,收藏,不如一次关注评论区第一条注意查看回复:Linux命令获取linux常用命令大全pdf+Linux命令行大全pdf为什么要学习Linux命令?1、因为Li...

15 个实用 Linux 命令(linux命令用法及举例)

Linux命令行是系统管理员、开发者和技术爱好者的强大工具。掌握实用命令不仅能提高效率,还能解锁Linux系统的无限潜力,本文将深入介绍15个实用Linux命令。ls-列出目录内容l...

Linux 常用命令集合(linux常用命令全集)

系统信息arch显示机器的处理器架构(1)uname-m显示机器的处理器架构(2)uname-r显示正在使用的内核版本dmidecode-q显示硬件系统部件-(SMBIOS/DM...

Linux的常用命令就是记不住,怎么办?

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

Linux常用文件操作命令(linux常用文件操作命令有哪些)

ls命令在Linux维护工作中,经常使用ls这个命令,这是最基本的命令,来写几条常用的ls命令。先来查看一下使用的ls版本#ls--versionls(GNUcoreutils)8.4...

Linux 常用命令(linux常用命令)

日志排查类操作命令查看日志cat/var/log/messages、tail-fxxx.log搜索关键词grep"error"xxx.log多条件过滤`grep-E&#...

简单粗暴收藏版:Linux常用命令大汇总

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部下午好,我的网工朋友在Linux系统中,命令行界面(CLI)是管理员和开发人员最常用的工具之一。通过命令行,用户可...

「Linux」linux常用基本命令(linux常用基本命令和用法)

Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们。总结送免费学习资料(包含视频、技术学习路线图谱、文档等)1、显示日期的指令:d...

Linux的常用命令就是记不住,怎么办?于是推出了这套教程

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

Linux的30个常用命令汇总,运维大神必掌握技能!

以下是Linux系统中最常用的30个命令,精简版覆盖日常操作核心需求,适合快速掌握:一、文件/目录操作1.`ls`-列出目录内容`ls-l`(详细信息)|`ls-a`(显示隐藏文件)...

Linux/Unix 系统中非常常用的命令

Linux/Unix系统中非常常用的命令,它们是进行文件操作、文本处理、权限管理等任务的基础。下面是对这些命令的简要说明:**文件操作类:*****`ls`(list):**列出目录内容,显...