激情久久久_欧美视频区_成人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
主站蜘蛛池模板: 欧美成a人片在线观看久 | 高清av在线 | 中文字幕综合在线观看 | 国产乱淫a∨片免费观看 | 另类亚洲孕妇分娩网址 | 欧洲成人综合网 | 欧美成人做爰高潮片免费视频 | av黄色片网站| www.成人精品 | 黄色免费电影网址 | 一区二区三区日韩 | 欧美日韩国产中文字幕 | 蜜桃视频最新网址 | 午夜视频在线免费观看 | 国产一区二区在线免费播放 | 欧美精品亚洲人成在线观看 | 看免费黄色大片 | 久久影院国产精品 | 国产成人高清成人av片在线看 | 97超级碰碰人国产在线观看 | 美女在线观看视频一区二区 | 黄在线| 国产精品九九久久一区hh | 国产精品999在线观看 | 免费看综艺策驰影院 | fc2成人免费人成在线观看播放 | 免费国产视频大全入口 | 亚洲国产高清自拍 | 日本a级免费 | 成人免费毛片片v | 亚洲国产一区二区三区 | 久草导航 | 国产伦精品一区二区三区 | www国产免费 | 国产女厕一区二区三区在线视 | 精国品产一区二区三区有限公司 | 精品一区二区三区在线播放 | 91久久久国产精品 | 久久亚洲精品久久国产一区二区 | 国产大片中文字幕在线观看 | 久久综合久久美利坚合众国 |