opencv-python 图片去水印或文字打马赛克

这篇博客介绍了如何使用opencv-python库进行图片的水印和文字去除,以及打马赛克效果的实现。主要方法包括基于选块的去除和平移像素填充,以及结合HSV选色的局部水印去除技术。通过实验展示,探讨了cv2.inpaint函数的应用。
摘要由CSDN通过智能技术生成

opencv-python 图片去水印或文字及打马赛克

没有用基于像素的反色中和的方法

1. 基于选块的去除

通过鼠标选择图片中需要去除的水印,文字或…先看下效果不算完美,研究学习inpaint函数,及对图像的像素操作。

  1. 使用了opencv中inpaint方法去除水印或文字
  2. 平移像素填充 方法去除水印或文字

最后顺便做了个打马赛克效果测试。
在这里插入图片描述
代码:

import cv2
import numpy as np

def onmouse(event, x, y, flags, param):  # 鼠标事件的回调函数
    global ix, iy, drawing, mode
    if event == cv2.EVENT_LBUTTONDOWN:  # 按下左键
        ix, iy = x, y  # 赋予按下时的鼠标,获取选中区域矩形左上角坐标
    elif event == cv2.EVENT_MOUSEMOVE and flags == cv2.EVENT_FLAG_LBUTTON:  # 当按下左键拖拽鼠标时
         tmp1=img.copy()
         cv2.rectangle(tmp1, (ix, iy), (x, y), (0, 0, 255), -2)
         cv2.imshow('Imageorg', tmp1)
    elif event == cv2.EVENT_LBUTTONUP:  # 当鼠标左键松开
            tmp1=img.copy()
            cv2.rectangle(img, (ix, iy), (x, y), (0, 0, 255), 2)   
            mosaic(img,ix, iy, x, y)#马赛克处理
            img_inpaint(img,ix, iy, x, y)# cv2.inpaint调用
            cleanself(img,ix, iy, x, y)#平移像素处理
    elif event == cv2.EVENT_MOUSEMOVE  and   flags != cv2.EVENT_FLAG_LBUTTON:#左键没有按下的情况下,鼠标移动 标出坐标
     
  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值