python + opencv微博图片去水印

OpenCV数字图像处理实战一:去水印(C++) 使用两种方法对图片进行去水印 阅读详情
  • python 3.6.5
  • openCV 4.0.1

基本思路:

  1. 提取ROI(感兴趣的区域,即水印所在的区域)
  2. 为水印创建蒙层
  3. 借助水印蒙层对图片进行修补

**提取ROI:**获取水印在图片中所在的区域,即像素值范围。可以有很多工具获得,我使用的是windows自带的画图工具。
在这里插入图片描述
使用画图工具获取水印范围后就可以使用切片了,roi = img[930:966,540:690]提取ROI。需要注意的是图片坐标与二维数组位置是相反的,图片坐标(x, y)中x表示像素点到图片左侧的距离,y表示像素点到图片顶部的距离,而二维数组位置(x, y)中x表示该像素点所在行数,y表示该像素点所在列数,两者虽然都是两个数字,但顺序正好相反。
ROI
**为水印创建蒙层:**通过对水印logo的观察可以发现,该水印只有一种颜色白色,因此我们只需要对白色这一种颜色进行处理即可。(测试时都是使用微博带水印的图,貌似微博水印都是白色,所以本文的去水印方法应该适用于微博去水印以及其他白色水印,时间原因,暂未做过多测试,在此只讨论方法。)为了精确处理白色,我们可以先将颜色格式有BGR转换为HSV,然后调用inRange()函数对ROI进行二值化处理。

最初看网上教程时对inRange中的范围不知道怎么设置,也不知时什么意义,后来发现都是些特定的HSV数值,根据下表处理自己想要处理的颜色即可。
HSV颜色体系:
在这里插入图片描述
HSV
二值化蒙层:
在这里插入图片描述
图片修复: 将水印二值化处理后需要使用dilate()函数对水印蒙层进行膨胀处理,这样去水印的效果更好。然后就是使用inPaint()函数利用膨胀后的蒙层对ROI进行修补,还原到原图中。

实现代码如下:

import cv2 as cv
import numpy as np


class WaterMark:

    def Test(self,path):
        img = cv.imread(path)
        roi = img[930:966,540:690]
        cv.imwrite('02.jpg',roi)
        roi_hsv = cv.cvtColor(roi,cv.COLOR_BGR2HSV)
        cv.imwrite('hsv.jpg',roi_hsv)
        lower = np.array([0,0,221])
        upper = np.array([180,30,255])
        #创建水印蒙层
        kernel = np.ones((3,3),np.uint8)
        print(kernel)
        cv.imwrite('kernel.jpg',kernel)
        mask = cv.inRange(roi_hsv,lower,upper)
        cv.imwrite(r'mask.jpg',mask)
        #对水印蒙层进行膨胀操作
        dilate = cv.dilate(mask,kernel,iterations=1)
        cv.imwrite('dilate.jpg',dilate)
        res = cv.inpaint(roi,dilate,7,flags=cv.INPAINT_TELEA)
        cv.imwrite('res.jpg',res)
        img[930:966,540:690] = res
        cv.imwrite('modified.jpg',img)


if __name__ ==  '__main__':
    path = 'girl.jpg'
    w = WaterMark()
    w.Test(path)


效果图:
在这里插入图片描述
其实微博的水印并不复杂,属于单色系水印,对于这种,其实不一定需要切片获取ROI
代码如下:

import cv2 as cv
import numpy as np


class WaterMark:

    def Test(self,path):
        img = cv.imread(path)
        roi = img
        cv.imwrite('02.jpg',roi)
        roi_hsv = cv.cvtColor(roi,cv.COLOR_BGR2HSV)
        cv.imwrite('hsv.jpg',roi_hsv)
        lower = np.array([0,0,221])
        upper = np.array([180,30,255])
        #创建水印蒙层
        kernel = np.ones((3,3),np.uint8)
        print(kernel)
        cv.imwrite('kernel.jpg',kernel)
        mask = cv.inRange(roi_hsv,lower,upper)
        cv.imwrite(r'mask.jpg',mask)
        #对水印蒙层进行膨胀操作
        dilate = cv.dilate(mask,kernel,iterations=1)
        cv.imwrite('dilate.jpg',dilate)
        res = cv.inpaint(roi,dilate,7,flags=cv.INPAINT_TELEA)
        cv.imwrite('res.jpg',res)
        img = res
        cv.imwrite('modified.jpg',img)


if __name__ ==  '__main__':
    path = 'girl.jpg'
    w = WaterMark()
    w.Test(path)

在这里插入图片描述
在这里插入图片描述

Python编程-使用OpenCV和Numpy库实现图片去水印(附代码) cv2.inpaint函数可能并不适用于所有类型的图像修复,对于复杂或大面积的修复任务,可能需要更高级的技术或手动干预来获得满意的结果,如深度学习或特定的颜色恢复算法。然后,计算出水印的位置和大小再进行图像处理和水印去除。首先尝试读取输入图像。为了能够图片上点击水印的位置,并获取该水印的定位和大小,我们需要一个图形用户界面(GUI)库来与用户进行交互。inpaintRadius参数的值需要根据具体的水印和图像进行调整,以达到最佳的修复效果。通过创建一个白色掩码来覆盖图像中的水印,从而达到去除水印的效果。 阅读详情

相关推荐

【一篇解决】Python图片处理: 去水印/加水印—这几个方法你一定要学会,太神奇了~(建议保留)

🌄导语 哈喽盆友们泥萌好,这个夏天我们一起去看海啊~ 嘻嘻嘻。广州的天气简直说变就变啊🌧🌦🌥最近一直在疯狂下雨。 好不容易来一趟广州,啥地方都没去呢!昨天还有小伙伴儿催我(顺便说一句日月贝的景色不错 啊)有一个写游戏文章的朋友让我帮忙去下图片的水印,说素材不好找,找到了还有水印,难搞哦 让我帮忙想个办法,哈哈哈——暗搓搓的准备好~​ 小可爱们有想去水印🚥的,也有想添加水印🚦的,今天统统安排一波啦~ 今天就给大家推荐一款自己写的程序员添加水印+祛除水印的方法!期待.jpg 🌅正..

顾木子吖的博客 4490

分享新浪微博代码

分享至微博

zhuyu19911016520 6546

Python图像处理,cv2模块,OpenCV实现检索图片

前言 利用Python实现OpenCV实现检索图片。废话不多说。 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: cv2模块; 以及一些Python自带的模块。 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可。 OpenCV可以检测图像的主要特征,然后提取图像的特征,使其成为图像描述符 这些图像特征,也就是图像描述符,可以作为图像搜索的数据库 特征检测算法 这里简单介绍一下OpenCV常用的几种特征检测和提取算法。 H

qq_60168783的博客 2322

微博的图片文字水印处理方法

import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; ...

daichangfu的专栏 946

python利用opencv去除图片logo_用python+OpenCV去除图片水印

python+OpenC不仅能用来为图片添加水印logo,还能用来去除图片的水印。从理论上来说,除非原图中水印所在区域为纯色或有规律的图案,否则无法真正去掉水印,因为加水印的过程是不可逆的,我们无法准确判断水印遮盖区域的像素点颜色,因此无法将图像完全恢复成之前的样子。通常的做法是识别出水印的轮廓,使用膨胀算法覆盖水印。上篇文章我们介绍了python+OpenC为图片添加水印logo的方法(实现效果...

weixin_29476755的博客 1582

Python破解-图形验证码_绕过网页本地图片验证

识别图形验证码需要安装tesserocr这个库,下面介绍下tesserocr;tesserocr是Python的一个OCR识别库,但其实是对tesseract做了一层Python Api的封装,核心还是tesseract,所以在安装tesserocr之前,需要先安装tesseract;等下,懵逼中,tesserocr这个能看明白,是一个库,但OCR是什么?tesseract又是什么?OCR。

2401_87368884的博客 1841

python opencv去图片水印

本文转载自:http://blog.youkuaiyun.com/androidmylove/article/details/41960111 背景】   最近有一个需要为图片去水印的需求,于是各种折腾开始。 【背景了解图片标准】 图片使用RGB编码,RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样

ch的专栏 1万+

破茧成蝶:Python模拟登录微博与滑块验证码攻克实战指南(2026终极版)

在数据驱动的时代,微博作为中国最具影响力的社交媒体平台之一,蕴藏着海量的用户行为数据、舆情风向标和商业价值。无论是学术研究中的社会网络分析,还是商业领域的竞品监测、热点追踪,获取微博数据都是第一步。然而,微博的反爬虫机制堪称“铜墙铁壁”,尤其是其登录环节的滑块验证码,让无数爬虫开发者夜不能寐。2026年的今天,微博的验证码系统已进化至第5代——集成了行为轨迹分析、环境指纹检测、深度学习风控模型等多项黑科技。但这并不意味着我们束手无策。

2201_76125261的博客 116

用python+OpenCV去除图片水印

  python+OpenC不仅能用来为图片添加水印logo,还能用来去除图片的水印。从理论上来说,除非原图中水印所在区域为纯色或有规律的图案,否则无法真正去掉水印,因为加水印的过程是不可逆的,我们无法准确判断水印遮盖区域的像素点颜色,因此无法将图像完全恢复成之前的样子。通常的做法是识别出水印的轮廓,使用膨胀算法覆盖水印。      上篇文章我们介绍了python+OpenC为图片添加水印logo的方法(实现效果如上图),本文就来讨论如何去掉上图中的水印。我们首先要手动取得水印所在区域ROI(感兴趣.

cxzhq2002的杂记 1928

随机森林文本分类

随机森林原理及代码实现 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录随机森林原理及代码实现前言一、集成算法是什么?二、随机森林是什么三、 数据预处理3.1 先来看一下我们的文本数据3.2 预处理3.3 统计评论情感值积极与消极的占比二、使用步骤参数介绍(4个)属性1.引入库2.参数调参方法总结 前言 提示:这里可以添加本文要记录的大概内容: 例如

m0_46579176的博客 5807

TCP协议中ARQ自动重传的三种实现方式对比(含SACK详解)

本文深入解析TCP协议中ARQ自动重传的三种实现方式,包括停止-等待、回退N步和选择重传协议,特别详细介绍了SACK机制的工作原理和优势。通过对比分析各协议的效率、复杂度和适用场景,为网络通信中的可靠性传输提供了实用的选型指南。

weixin_30776273的博客 461

captcha-break实战案例:破解优快云、微博等平台验证码的具体步骤

想要了解如何快速破解常见网站的验证码吗?captcha-break项目为你提供了完整的解决方案!这是一个基于OpenCV2、Tesseract-OCR和机器学习算法的验证码破解工具,专门针对优快云、微博等热门平台的验证码进行破解。无论你是网络安全研究者还是开发者,这个项目都能帮助你深入理解验证码破解的原理和技术实现。😊 ## 项目简介与核心功能 captcha-break是一个开源的验证码

gitblog_01040的博客 940

用Isaac Sim复现经典案例:手把手教你写Python脚本控制机械臂抓取(附避障算法调试心得)

本文详细介绍了如何使用NVIDIA Isaac Sim仿真系统复现机械臂抓取经典案例,包括Python脚本编写、避障算法调试等关键步骤。通过URDF模型导入、关节控制逻辑实现和RMPFlow避障配置等实战演示,帮助开发者快速掌握机器人仿真技术,特别分享了官方文档未提及的实用调试技巧和性能优化策略。

weixin_30632089的博客 406

Python基于OpenCV的全景图像拼接系统(附源码,文档说明)

Python基于OpenCV的全景图像拼接系统,前台界面使用了最新的HTML5技术,使用DIV+CSS进行布局,使整个前台页面变得更美观,极大的提高了用户的体验,另外本系统无论是使用电脑的浏览器进行访问还是使用移动设备进行访问,都可以保证网站正确的排版。后端的代码技术选择的是PYTHON,PYTHON语言是当下最常用的编程语言之一,可以保证系统的稳定性和流畅性,PYTHON可以灵活的与数据库进行连接。本系统的数据使用的MYSQL数据库,它可以提高查询的速度,增强系统数据存储的稳定性和安全性。

IT徐师兄 1443

小波变换(Wavelet Transform)原理及介绍

小波变换是一种多分辨率时频分析工具,克服了傅里叶变换无法定位时间信息的缺陷。通过可伸缩平移的母小波,它能同时捕捉信号的高频细节(短时特征)和低频轮廓(整体趋势)。其核心原理是利用不同尺度的小波基与信号进行内积运算,生成时频域系数矩阵。小波变换具有动态分辨率特性,高频部分时间精度高,低频部分频率分辨率好。主要应用包括瞬态事件检测、信号降噪、数据压缩(如JPEG2000)和压缩感知(如快速MRI)。

qq_42758052的博客 5477

告别Inspect!用微软官方推荐的Accessibility Insights搞定WinApp自动化测试元素定位

本文介绍了如何从传统的Inspect工具升级到微软官方推荐的Accessibility Insights for Windows,以提升Windows应用自动化测试中的元素定位效率。通过详细的功能对比、安装指南和实战技巧,帮助测试工程师掌握这款现代化工具的核心优势,包括实时元素检测、属性筛选和与WinAppDriver、Appium等测试框架的无缝集成。

weixin_26749245的博客 617

终极验证码破解指南:captcha-break项目如何用OpenCV2与Tesseract-OCR实现高效识别

captcha-break是一个基于OpenCV2、Tesseract-OCR和机器学习算法的验证码破解项目,它提供了多种验证码类型的解决方案,帮助开发者轻松应对各类验证码识别挑战。 ## 📌 项目核心功能与优势 captcha-break项目通过整合计算机视觉与机器学习技术,实现了对多种常见验证码的自动化识别。项目支持C++和Python两种主流编程语言,提供了从验证码下载、图像预处理到模

gitblog_00417的博客 313

鸿蒙OS开机动画背后的秘密:从代码到视觉的完整解析(附源码分析)

本文深入解析了鸿蒙OS开机动画的系统级实现原理。从bootanimation服务的启动配置、与Render Service的协同,到基于VSync信号的帧率同步与绘制流水线,结合OpenHarmony源码进行了逐行解读。文章揭示了其事件驱动的优雅退出机制,并探讨了视频支持、多屏适配等高级特性与定制化可能,为开发者理解鸿蒙图形子系统提供了硬核技术视角。

sony5的博客 969

用python识别条形码,二维码并且定位标注

原理很简单用OpenCV处理图片pyzbar识别条形码 python里面有一个包pyzbar可以用识别二维码和条形码,我们再结合OpenCV处理图片的功能就可以标注出二维码位置内容 我们生活中的常见的带有二维码和条形码的图片如下图 需要导的包有 import pyzbar.pyzbar as pyzbar import numpy from PIL import Im...

qq_42556555的博客 1万+

基于电能质量治理的场景实例:统一电能质量调节器(UPQC)与并网逆变器集成

本文通过Simulink平台,详细演示了统一电能质量调节器(UPQC)与并网逆变器的集成系统建模与仿真过程。主要内容包括:1)系统架构设计,包含光伏并网系统、非线性负载和电压扰动源;2)UPQC主电路设计,包括串联/并联单元拓扑和控制策略实现;3)与并网逆变器的能量交互与协同控制逻辑;4)典型电能质量问题的仿真测试场景。结果表明,该集成系统能有效治理电压暂降(维持负载电压380V±2%)和电流谐波(电网THD<3%),直流母线电压稳定在800V±5V。该系统为应对复杂电能质量问题提供了"电压

xiaoheshang_123的博客 309

Cadence SPB16. 6 安装流程

1.首先下载CadenceAllegroSPBorCAD16.6安装包 下载之后运行其中的setup.exe,然后先安装第一项LicenseManager 一直按next或install, 直到被询问license时,单击cancel,然后选是和finish。 2,安装Product Installtion 直接点next跳过这一步 安装完成后,点Exit退出 3.按ctrl+alt+delete打开任务管...

wangjie36的博客 5145

Python基于Opencv的疲劳检测系统的设计与实现【附源码】

Python基于Opencv的疲劳检测系统的设计与实现,运用的是一种基于眼动信号及人脸判断的疲劳检测方法,借助OpenCV图像处理库检测测试者的眼睛闭合程度,同时通过面部表情呈现及眨眼频次来表征测试者的疲劳程度,借助人脸及人眼图像识别的结果参数实现疲劳测试的评判,同时在系统的呈现设计上利用了Python编程语言以及Mysql数据库,通过系统平台的图像识别、图片分析及照片管理等功能模块实现系统平台的管理和应用,进一步提升了疲劳检测应用的便捷性,通过疲劳检测系统的应用提升了人身财产的安全性。

徐师兄的博客 1509

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

1分钟制作朋友圈9宫格图片,不用任何P图软件

目录前言生成9宫格图片生成9宫格动图短视频生成动图9宫格GIF直接生成动图9宫格生成9宫格视频使用pyqt5打包成exe界面 前言 最近网上朋友圈微博已经掀起了9宫格图片的玩法。可以说将单个图片,或者说单个动图亦或视频分割成9份发在朋友圈,感觉很有趣。 今天,博主就通过Python-OpenCV的知识,来帮助大家实现任意图像,视频,动图的9宫格原理。文末还有配套生成9宫格的pyqt5的源代码以及exe可运行文件奉上。 生成9宫格图片 一般来说,我们生成的9宫格图片是正方形的,毕竟朋友圈与微博整体的9宫格就是

李元静 6197

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

python 在屏幕上点击特定按钮或图像

想要的效果 大概就是搞个windows桌面自动点击程序。 需要用到的函数库 PyAutoGUI——图形用户界面自动化(主要用到这个) PyAutoGUI是Python功能强大的UI自动化库,其目的是可以用程序自动控制鼠标和键盘操作,主要用来实现PC端的UI自动化。 有鼠标控制、键盘操作、屏幕截图、图片定位、消息对话框、窗口操作等功能; 有倒计时、鼠标坐标颜色抓取小程序、UI自动化迷你语言等实用工具; 有故障安全、通用暂停等机制。 Pillow——图像处理 该库提供广泛的文...

zzfengling的博客 2万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

基于Python opencv的车牌识别系统,附源码

基于Python opencv的车牌识别系统:车牌字符识别使用的算法是opencv的SVM。opencv的SVM使用代码来自于opencv附带的sample,StatModel类和SVM类都是sample中的代码。训练数据文件svm.dat和svmchinese.dat。使用图像边缘和车牌颜色定位车牌,再识别字符。

徐师兄的博客 2161
上一篇: c#byte操作
下一篇: 华为研发工程师笔试编程题
玄蛰
博客等级 码龄9年 89粉丝 80原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值