【OpenCV 例程200篇】220.对图像进行马赛克处理

文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』


【youcans 的 OpenCV 例程200篇】220.对图像进行马赛克处理

9. 图像的马赛克处理

马赛克效果是广泛使用的图像和视频处理方法。将图像中指定区域的色阶细节劣化,造成色块模糊的效果,看上去像是一个个小格子组成的色块,称为马赛克。马赛克效果的主要目的是使特定区域的细节无法辨认,经常用于遮挡人物脸部、隐私信息。

马赛克的方法很简单,将处理区域划分为一个个小方块,每个小方块内所有像素置为相同的或相似的像素值。例程 A4.13 给出了一个简单的实施案例。

马赛克方块的尺寸越大,图像越模糊,马赛克区域图像丢失的细节越多。

这与图像多尺度像素采样是相似的:图像向下采样,分辨率逐级降低。对整幅图像进行马赛克处理,与图像下采样是等效的;对图像局部进行马赛克处理,相当于原始图像与局部图像下采样的融合。

上采样和下采样是不可逆的,将下采样的图像还原回原来尺寸时会丢失高频信息,使图片变模糊。因此,消除图像马赛克在原理上是不可能的。但是,通过图片像素临近点插值的填充算法,可以增强马赛克区域的视觉效果。近年来,随着 AI 技术的发展,基于对大量类似清晰图像的学习,使用 AI 算法可以较好地还原图像,识别被马赛克遮挡的人脸或文本,取得了很好的效果。


例程 A4.13:对图像指定区域进行马赛克处理

对于选定的 ROI 区域进行马赛克处理。马赛克方块的尺寸越大,图像越模糊,马赛克区域图像丢失的细节越多。

    # A4.13 对图像指定区域进行马赛克处理img = cv.imread("../images/imgLena.tif", 1)  # 加载原始图片,单通道roi = cv.selectROI(img, showCrosshair=True, fromCenter=False)x, y, wRoi, hRoi = roi  # 矩形裁剪区域的位置参数# x, y, wRoi, hRoi = 208, 176, 155, 215  # 矩形裁剪区域imgROI = img[y:y+hRoi, x:x+wRoi].copy()  # 切片获得矩形裁剪区域print(x, y, wRoi, hRoi)plt.figure(figsize=(9, 6))plt.subplot(231), plt.title("Original image"), plt.axis('off')plt.imshow(cv.cvtColor(img, cv.COLOR_BGR2RGB))plt.subplot(232), plt.title("Region of interest"), plt.axis('off')plt.imshow(cv.cvtColor(imgROI, cv.COLOR_BGR2RGB))mosaic = np.zeros(imgROI.shape, np.uint8)  # ROI 区域ksize = [5, 10, 20]  # 马赛克块的宽度for i in range(3):k = ksize[i]for h in range(0, hRoi, k):for w in range(0, wRoi, k):color = imgROI[h,w]mosaic[h:h+k,w:w+k,:] = color  # 用顶点颜色覆盖马赛克块imgMosaic = img.copy()imgMosaic[y:y + hRoi, x:x + wRoi] = mosaicplt.subplot(2,3,i+4), plt.title("Coding image (size={})".format(k)), plt.axis('off')plt.imshow(cv.cvtColor(imgMosaic, cv.COLOR_BGR2RGB))plt.subplot(233), plt.title("Mosaic"), plt.axis('off')plt.imshow(cv.cvtColor(mosaic, cv.COLOR_BGR2RGB))plt.show()

在这里插入图片描述


【本节完】

版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/125522759)
Copyright 2022 youcans, XUPT
Crated:2022-6-30

218. 多行倾斜文字水印
219. 添加数字盲水印
220.220.对图像进行马赛克处理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565372.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

主成分分析得分 matlab,主成分分析Matlab程序设计

PCA步骤:(1)对原始数据进行标准化处理(2)计算样本相关系数矩阵(3)计算相关系数矩阵R的特征值和相应的特征向量(4)选择重要的主成分,写出主成分表达式案例问题:企业综合实力排序企业综合实力评价表:企业序号净利润率/%固定资产利润…

【OpenCV 例程200篇】223. 特征提取之多边形拟合(cv.approxPolyDP)

『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】223. 特征提取之多边形拟合 目标特征的基本概念 通过图像分割获得多个区域,得到区域内的像素集合或区域边界像素集合。我们把感兴趣的人或物称为目标,目标所处的区域就是目标…

matlab指令vpa(j10),matlab中vpa函数

Matlab中矩阵函数_IT/计算机_专业资料。Matlab中矩阵函数 矩阵转置...Matlab 中 solve 函数主要是用来求解线性方程组的解析解或者精确解。对于得 出的结果是符号变量,可以通过 vpa()得出任意位数的数值解! solve 函数的语法定义主要有......控制系统matlab常用函数的使用_计算…

Eclipse快捷键生成语句

当我们使用Eclipse进行项目的开发的时候,有的时候我们需要重复输入main方法和输出语句等,下面就教给大家如何在Eclipse开发中使用快捷键生长main方法和输出语句。 快捷键生成语句 生成main方法:输入"main" ,按ALT/&…

【OpenCV 例程200篇】221.加密马赛克图像处理与解密复原

『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】221.加密马赛克图像处理与解密复原 9. 图像的马赛克处理 马赛克效果是广泛使用的图像和视频处理方法。将图像中指定区域的色阶细节劣化,造成色块模糊的效果,看上去像是一个个…

小网站asp好还是php好,网站程序是asp好还是php好,哪个更利于优化?

网站程序是asp好还是php好呢?如果我们要做seo优化,哪一个又更利于优化呢?毕竟,现在在网上所看到的程序,是比较多的,选择一个好的网站程序,可以少走很多弯路。如果,大家建一个网站是为…

Java IO深入

IO体系 Java IO 体系种类繁多,感觉很复杂,但其实是 IO 涉及的因素太多了。在进行介绍的时候添加了设计模式等的使用,会让你感觉更加难以理解难以使用这些IO类,在此对java的IO做了一个详细的总结。 IO 类设计出来,肯定…

【OpenCV 例程200篇】222. 特征提取之弗里曼链码(Freeman chain code)

OpenCV 例程200篇 总目录 【youcans 的 OpenCV 例程200篇】222. 特征提取之弗里曼链码(Freeman chain code) 目标特征的基本概念 通过图像分割获得多个区域,得到区域内的像素集合或区域边界像素集合。我们把感兴趣的人或物称为目标&#xff…

python2与python3,Python2和Python3的10大区别

1.性能Py3.0运行pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好的优化结果。2.编码Py3.0源码文件默认使用utf-8编码,这就使得以下代码是合法的:>>>中国 china>>>…

【OpenCV 例程200篇】224. 特征提取之提取骨架

OpenCV 例程200篇 总目录 【youcans 的 OpenCV 例程200篇】224. 特征提取之提取骨架 目标特征的基本概念 通过图像分割获得多个区域,得到区域内的像素集合或区域边界像素集合。我们把感兴趣的人或物称为目标,目标所处的区域就是目标区域。 特征通常是针…

inuri .php id=,php常用函数(遇见就补充)

preg_match()preg_match(string pattern, string subject [, array matches [, int flags]])在subject字符串中搜索与 pattern给出的正则表达式相匹配的内容。如果提供了 matches,则会被搜索的结果所填充。$matches[0]将包含于整个模式匹配的文本,$match…

【OpenCV 例程200篇】226. 区域特征之紧致度/圆度/偏心率

『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】226. 区域特征之紧致度/圆度/偏心率 特征通常是针对于图像中的某个目标而言的。 我们把感兴趣的人或物称为目标,目标所处的区域就是目标区域。图像分割之后,还要对目标区域进…

Java常见的几种设计模式

单例模式 指一个应用程序中,某个类的实例对象只有一个,你没有办法去new,因为构造器是被private修饰的,一般通过getInstance()的方法来获取它们的实例。 getInstance()的返回值是一个对象的引用,并不是一个新的实例&a…

【OpenCV 例程200篇】227. 特征描述之 LBP 纹理特征算子

『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】227. 特征描述之 LBP 纹理特征算子 特征通常是针对于图像中的某个目标而言的。 针对目标所在区域的特征描述符(Region descriptors),称为区域特征描述子。 4.2 纹…

php日志数据统计,awk 进行php日志累计报错统计

问题线上服务器一百多台通过tail -f /var/log/error_web* 方式来查看,速度滚动刷新太快,而且不方便定位问题按照前辈的『观察法』,作为新人实在是有难度,所以使用awk命令对输出格式格式化了一下。思路将每一行tail得到的日志通过a…

【OpenCV 例程200篇】228. 特征描述之 extendLBP 改进算子

『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】228. 特征描述之 extendLBP 改进算子 特征通常是针对于图像中的某个目标而言的。针对目标所在区域的特征描述符(Region descriptors),称为区域特征描述子。 局部…

Java设计模式汇总详解

设计模式 设计模式是很多程序员总结出来的最佳实践。曾经在刚开始写项目的时候学习过设计模式,在开发过程中,也主动或者被动的使用过。现在写代码虽说不会特意明确在用哪种设计模式,但潜移默化的写出来公认的最佳实践代码,毕竟看…

php中reset函数,PHP reset()函数

实例 1所有相关方法的演示:$people array("Peter", "Joe", "Glenn", "Cleveland");echo current($people) . ""; // The current element is Peterecho next($people) . ""; // The next element of …

【OpenCV 例程200篇】229. 特征描述之 LBP 算子比较(skimage)

『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】229. 特征描述之 LBP 算子比较(skimage) 局部二值模式(LBP,Local binary patterns)是一种用来描述图像局部纹理特征的算子,它具…

Java多线程的使用

无论在我们的工作中还是在我们的生活中,我们都会用到多线程的知识,今天就给大家讲一下如何使用多线程。 序幕 线程的启动 如何使线程暂停 如何使线程停止 线程的优先级 线程安全相关的问题 我们首先要知道进程和线程分别是什么? 进程 - 进…