国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - OpenCV利用對比度亮度變換實現水印去除

OpenCV利用對比度亮度變換實現水印去除

2022-03-03 14:19Color Space C/C++

OpenCV中去除水印最常用的方法是inpaint,通過圖像修復的方法來去除水印。本文將介紹另一種方法:利用對比度亮度變換去除水印,需要的朋友可以參考一下

導讀

本文主要介紹使用OpenCV亮度/對比度變換來去除圖片水印的實例。

 

背景介紹

OpenCV中去除水印最常用的方法是inpaint,通過圖像修復的方法來去除水印,最終效果也要根據實際圖像來看(時好時壞)。有些圖像并不適用inpaint方法來去除水印,比如下面的這種包含文本的圖像中的水印,即便提供了水印的mask圖,修復后也會丟失文字信息,這并不是我們想要的。

OpenCV利用對比度亮度變換實現水印去除

那么問題來了,上面圖像中的水印該如何去除?有沒有一種通用方法,能很好去除這些水印?答案是:沒有通用方法,只能具體問題具體分析!

 

實現步驟

仔細觀察上面的圖像并分析文本與水印的像素值不難發現,圖中文本和水印的灰度值或者RGB值有明顯差異:

【1】圖案水印RGB值(取樣值:239,236,253)

OpenCV利用對比度亮度變換實現水印去除

【2】文字水印RGB值(取樣值:215,215,215)

OpenCV利用對比度亮度變換實現水印去除

【3】文本RGB值(取樣值:114,112,125)

OpenCV利用對比度亮度變換實現水印去除

接下來對圖像做對比度和亮度變換:

result = alpha * src - beta (alpha = 2.0, beta = -165)

提高對比度*2時水印消失,然后降低亮度做補償:

Python-OpenCV實現代碼:

import cv2
import numpy as np


img = cv2.imread("mark.jpg")
alpha = 2.0
beta = -165
result= alpha * img + beta
result= np.clip(result, 0, 255).astype(np.uint8)
cv2.imwrite("result.png", result)

C++ OpenCV實現代碼:

#include <iostream>
#include <opencv2/opencv.hpp>


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利用對比度亮度變換實現水印去除

原圖與結果圖對比:

OpenCV利用對比度亮度變換實現水印去除

以上就是OpenCV利用對比度亮度變換實現水印去除的詳細內容,更多關于OpenCV去水印的資料請關注服務器之家其它相關文章!

原文鏈接:https://blog.csdn.net/stq054188/article/details/121522190

延伸 · 閱讀

精彩推薦
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
主站蜘蛛池模板: 国产精品久久久久久久久久大牛 | 精品久久久久久久 | 亚洲精品一区二区三区在线观看 | 国产精品美乳一区二区免费 | 国产综合一区二区 | 日韩欧美一级 | 粉嫩视频在线观看 | 亚洲欧美在线观看 | 91精选视频在线观看 | 国产精品视频久久久 | 蜜桃一区 | 高清视频一区二区三区 | 国产精品久久久久久久9999 | 日本不卡一区二区三区在线观看 | av中文字幕在线播放 | 一本色道久久综合狠狠躁篇的优点 | 婷婷五月在线视频 | 一级毛片免费播放 | 久久久久久久久久久高潮 | 久久手机视频 | 天天草天天干 | 精一区二区 | 亚洲青涩在线 | 亚洲精品久久久久久久久久久 | 粉色在线观看 | 久久综合九色综合欧美狠狠 | 久久久久久免费精品 | 黄色一级片免费观看 | 希岛爱理av一区二区三区 | 狠狠色综合网站久久久久久久 | 五月婷婷激情网 | 福利在线小视频 | 欧美精品一 | 精品一区二区av | 国内久久精品 | 国产欧美综合一区二区三区 | 国产亚洲一区二区三区 | 97精品国产一区二区三区 | 久久艹综合 | 91在线影院 | 日韩一级免费观看 |