用opencv 给图片批量打码

本文介绍了一种使用OpenCV库在Python中批量去除图片中特定文字或图像的方法。通过读取图片,转换为灰度,然后使用模板匹配找到需要遮盖的区域,并绘制矩形进行覆盖,最终保存处理后的图片。该方法适用于快速处理大量需要隐私保护的图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有的时候,有些图片内容上的文字或者图像需要全部盖住,我们就必须人工找出来,批量去除。太多太烦的时候就可以使用下面的代码批量去除。

简单易用!

例如你截图了某个微信聊天记录想盖掉某个对话人,或者你的某个图片中出现了某个人民要全部盖调,这就是一个简单而且高效的方法

 

 

import numpy as np
import cv2

img=cv2.imread('c:/opencv/chatlist.png')
img_gary=cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

while True:
    r=cv2.selectROI('select', img,False)
    # 没有任何选择的情况下退出
    if r[2]==0 :break
    imgselect=img[int(r[1]):int(r[1]+r[3]), int(r[0]):int(r[0]+r[2])]
    imgselect=cv2.cvtColor(imgselect, cv2.COLOR_BGR2GRAY)
    h,w=imgselect.shape[:2]
    res=cv2.matchTemplate(img_gary, imgselect , cv2.TM_CCOEFF_NORMED)
    per=0.8
    loc=np.where(res>=per  )
    i=0
    for pt in zip(*loc[::-1 ]):
        bottom_right=(pt[0]+w,pt[1]+h)
        cv2.rectangle(img, pt, bottom_right, (255,255,0),-1)

cv2.imwrite('c:/opencv/chatlist_new.jpg', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

### 如何在 WPS 中对图片添加局部马赛克 要在 WPS 中实现对图片的局部区域添加马赛克效果,可以按照以下方法操作: #### 使用 WPS 的绘图功能模拟马赛克效果 虽然 WPS 并未直接内置专门用于创建马赛克的功能模块,但可以通过其绘图工具手动实现这一需求。以下是具体的操作方式: 1. **插入图片** 打开 WPS 文字或演示文档,在菜单栏中选择 `插入` -> `图片` 将目标图片嵌入到文档中。 2. **裁剪与复制局部区域** 利用 WPS 提供的选择框工具选取需要打码的部分,并将其单独复制出来作为新的对象[^1]。 3. **应用模糊滤镜** 对于选定的目标片段,尝试调整大小至更小尺寸后再恢复原比例(即缩小再放大),从而形成一种简易版像素化现象。此过程实际上就是运用了双线性插值原理来重新估算各点颜色数值的过程[^3]。 4. **覆盖原始图像部分** 把经过上述处理后的区块放置回原来的位置上遮挡住敏感部位即可完成整个流程。 注意:以上步骤仅能达成接近实际意义上的“马赛克”,严格意义上讲它属于人为制造出来的视觉干扰形式而非真正意义上的加密手段。 ```python # Python 实现简单马赛克算法示例代码 (仅供参考) import cv2 def apply_mosaic(image, block_size=10): height, width = image.shape[:2] for y in range(0, height, block_size): # 行遍历 for x in range(0, width, block_size): # 列遍历 roi = image[y:y + block_size, x:x + block_size] if not roi.size: continue bgr_mean = cv2.mean(roi)[:3] # 计算当前块的颜色均值 # 设置所有像素为平均色 image[y:y + block_size, x:x + block_size] = tuple(map(int,bgr_mean)) return image if __name__ == "__main__": img = cv2.imread('test.jpg') result = apply_mosaic(img.copy(),block_size=15) cv2.imshow("Mosaiced Image",result);cv2.waitKey();cv2.destroyAllWindows() ``` 如果追求更高精度或者批量自动化生产,则可能需要用到第三方库比如 OpenCV 来编写脚本辅助完成任务。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值