文章目录:『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.对图像进行马赛克处理

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

  1. 【OpenCV 例程200篇】40. 图像分段线性灰度变换

    [OpenCV 例程200篇]40. 图像分段线性灰度变换 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 分段线性变 ...

  2. 【OpenCV 例程200篇】74. 图像的抗混叠

    [OpenCV 例程200篇]74. 图像的抗混叠 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 2.2 图像的混叠 ...

  3. 【OpenCV 例程200篇】66. 图像滤波之低通/高通/带阻/带通

    [OpenCV 例程200篇]66. 图像滤波之低通/高通/带阻/带通 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 ...

  4. 【OpenCV 例程200篇】65. 图像锐化——Scharr 算子

    [OpenCV 例程200篇]65. 图像锐化--Scharr 算子 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 ...

  5. 【OpenCV 例程200篇】64. 图像锐化——Sobel 算子

    [OpenCV 例程200篇]64. 图像锐化--Sobel 算子 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 3 ...

  6. 【OpenCV 例程200篇】63. 图像锐化——Laplacian 算子

    [OpenCV 例程200篇]63. 图像锐化--Laplacian 算子 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更 ...

  7. 【OpenCV 例程200篇】62. 图像锐化——钝化掩蔽

    [OpenCV 例程200篇]62. 图像锐化--钝化掩蔽 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 3. 空间 ...

  8. 【OpenCV 例程200篇】52. 图像的相关与卷积运算

    [OpenCV 例程200篇]52. 图像的相关与卷积运算 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 滤波通常是 ...

  9. 【OpenCV 例程200篇】44. 图像的灰度变换(伽马变换)

    [OpenCV 例程200篇]44. 图像的灰度变换(伽马变换) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 线性 ...

  10. 【OpenCV 例程200篇】45. 图像的灰度直方图

    [OpenCV 例程200篇]45. 图像的灰度直方图 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 图像直方图是反 ...

最新文章

  1. [bzoj1582][Usaco2009 Hol]Holiday Painting 节日画画_线段树
  2. Nature综述: 蓝藻水华的形成机理及防治动态
  3. vue-router 的基本使用
  4. python应用程序类型_python – 类型提示条件可变参数应用程序
  5. c语言对c99标准声明,C语言中C89与C99的区别
  6. 浅析NVR主流芯片方案
  7. web前端开发初学者十问集锦(5)
  8. python3序列化_python3 json序列化问题
  9. python np数组中括号里面‘:n‘与‘n:‘什么意思
  10. BUCK电路中,输入电压增加后,电感电流曲线变化的推导 // 《精通开关电源设计》P44 图2-3
  11. 软件工程案例-仓库管理系统简单版
  12. python实现素数判断
  13. (转)SonicStage CP 4.3 中文迷你版和完整版下载
  14. DOS基础使用专题(强烈推荐)2
  15. 关于码距、检错、纠错
  16. Polygon zkEVM——Hermez 2.0简介
  17. 【Matlab图像去噪】改进非局部均值红外图像混合噪声【含源码 1640期】
  18. UR_RTDE 在Linux安装与使用过程中遇到 一些坑
  19. 百度手游虚拟服务器,百度发布“云手机”:可实现安卓App的云端运行
  20. 【转】Tesla Autopilot

热门文章

  1. win32简单只读文件程序
  2. 经典Java题目:输入一个数字,输出它的大写汉字(阿拉伯数字转汉字)
  3. 数字化转型进行时 | 区块链赋能政务数字化研讨会在零数科技举办
  4. 程序员如何进行用户界面设计
  5. 【新能源】新能源之锂电池产业链梳理
  6. Fremont弗里蒙特_US机房测速
  7. 模数转换器ADC的常用术语和主要技术s指标(完)
  8. android apn切换工具,Android修改和添加APN网络
  9. Oracle账号怎么注销,qq账号如何永久注销?qq账号永久注销的条件以及详细操作方法...
  10. CSS尺寸与文本讲解。HTML、CSS笔记(四)。