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

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


【youcans 的 OpenCV 例程 300篇】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] = mosaic
        plt.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.对图像进行马赛克处理

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

youcans_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值