OpenCV如何利用对比度亮度变换实现水印去除
发表于:2024-10-09 作者:千家信息网编辑
千家信息网最后更新 2024年10月09日,OpenCV如何利用对比度亮度变换实现水印去除,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。导读主要介绍使用OpenCV亮度/对比度
千家信息网最后更新 2024年10月09日OpenCV如何利用对比度亮度变换实现水印去除
OpenCV如何利用对比度亮度变换实现水印去除,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
导读
主要介绍使用OpenCV亮度/对比度变换来去除图片水印的实例。
背景介绍
OpenCV中去除水印最常用的方法是inpaint,通过图像修复的方法来去除水印,最终效果也要根据实际图像来看(时好时坏)。有些图像并不适用inpaint方法来去除水印,比如下面的这种包含文本的图像中的水印,即便提供了水印的mask图,修复后也会丢失文字信息,这并不是我们想要的。
那么问题来了,上面图像中的水印该如何去除?有没有一种通用方法,能很好去除这些水印?答案是:没有通用方法,只能具体问题具体分析!
实现步骤
仔细观察上面的图像并分析文本与水印的像素值不难发现,图中文本和水印的灰度值或者RGB值有明显差异:
【1】图案水印RGB值(取样值:239,236,253)
【2】文字水印RGB值(取样值:215,215,215)
【3】文本RGB值(取样值:114,112,125)
接下来对图像做对比度和亮度变换:
result = alpha * src - beta (alpha = 2.0, beta = -165)
提高对比度*2时水印消失,然后降低亮度做补偿:
Python-OpenCV实现代码:
import cv2import numpy as npimg = cv2.imread("mark.jpg")alpha = 2.0beta = -165result= alpha * img + betaresult= np.clip(result, 0, 255).astype(np.uint8)cv2.imwrite("result.png", result)
C++ OpenCV实现代码:
#include#include using namespace std;using namespace cv;int main(){ Mat src = imread("mark.jpg"); if (src.empty()) { cout << "src img load failed!" << endl; return 1; } imshow("src", src); Mat result = 2.0 * src - 165; imshow("result", result); waitKey(); imwrite("result.png", result); return 0;}
运行结果图:
原图与结果图对比:
关于OpenCV如何利用对比度亮度变换实现水印去除问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
水印
图像
方法
亮度
对比度
问题
变换
文本
分析
代码
文字
更多
结果
面的
帮助
解答
明显
易行
接下来
时好时坏
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
视频服务器的原理及应用
冬奥会网络安全保障工作汇报
软件开发人员工资计入研发费用
谷歌地球无法连接服务器
数据库中查看的代码
我的世界服务器生存10期
服务器暂时不用备案
sap软件开发用什么语言
怎样使用mysql数据库
网络硬件网络技术
mc创造模式服务器推荐
家用服务器配置方案
松山湖智慧城市软件开发公司
网络安全课进校园征文450
网络安全运维与管理
wpf最适合什么数据库
18年网络安全周标语
网络安全技术及应用视频
丹拿音响连不上服务器
英灵神殿加好友服务器能开代码么
家用局域网小型服务器
通州区一站式网络技术信息推荐
网络安全位置
ios开发用软件开发
郑州直播盒子软件开发
用户对软件开发需求前期准备
数据库字段类型计算值
网络安全的工作
网络安全具有的特征是什么
数据库直接生成webapi