最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

OpenCV利用對比度亮度變換實現(xiàn)水印去除

 更新時間:2021年11月25日 16:48:46   作者:Color Space  
OpenCV中去除水印最常用的方法是inpaint,通過圖像修復的方法來去除水印。本文將介紹另一種方法:利用對比度亮度變換去除水印,需要的朋友可以參考一下

導讀

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

背景介紹

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

那么問題來了,上面圖像中的水印該如何去除?有沒有一種通用方法,能很好去除這些水?。看鸢甘牵簺]有通用方法,只能具體問題具體分析!

實現(xiàn)步驟

仔細觀察上面的圖像并分析文本與水印的像素值不難發(fā)現(xiàn),圖中文本和水印的灰度值或者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實現(xiàn)代碼:

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實現(xiàn)代碼:

#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;
}

運行結(jié)果圖:

原圖與結(jié)果圖對比:

以上就是OpenCV利用對比度亮度變換實現(xiàn)水印去除的詳細內(nèi)容,更多關于OpenCV去水印的資料請關注腳本之家其它相關文章!

相關文章

  • 簡單談談C++ 頭文件系列之(iosfwd)

    簡單談談C++ 頭文件系列之(iosfwd)

    本文給大家分享的是小編關于頭文件系列的(iosfwd)的簡單講解,所謂iosfwd,其實就是“input output stream forward”,下面我們來詳細看看
    2017-02-02
  • c++將vector迭代器轉(zhuǎn)換為指針的實現(xiàn)方式

    c++將vector迭代器轉(zhuǎn)換為指針的實現(xiàn)方式

    這篇文章主要介紹了c++將vector迭代器轉(zhuǎn)換為指針的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 老程序員教你一天時間完成C語言掃雷游戲

    老程序員教你一天時間完成C語言掃雷游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)掃雷游戲初級版,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • C++實現(xiàn)無重復字符的最長子串

    C++實現(xiàn)無重復字符的最長子串

    本文主要介紹了C++實現(xiàn)無重復字符的最長子串,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C++隊列用法實例

    C++隊列用法實例

    這篇文章主要介紹了C++隊列用法,實例分析了C++實現(xiàn)隊列的入隊、出隊、讀取與判斷等相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • C語言由淺入深講解文件的操作下篇

    C語言由淺入深講解文件的操作下篇

    C語言具有操作文件的能力,比如打開文件、讀取和追加數(shù)據(jù)、插入和刪除數(shù)據(jù)、關閉文件、刪除文件等。與其他編程語言相比,C語言文件操作的接口相當簡單和易學
    2022-04-04
  • C++中delete和delete[]的區(qū)別詳細介紹

    C++中delete和delete[]的區(qū)別詳細介紹

    一直對C++中的delete和delete[]的區(qū)別不甚了解,今天遇到了,上網(wǎng)查了一下,得出了結(jié)論,拿出來和大家分享一下
    2012-11-11
  • Objective-C中常用的結(jié)構體NSRange,NSPoint,NSSize(CGSize),NSRect實例分析

    Objective-C中常用的結(jié)構體NSRange,NSPoint,NSSize(CGSize),NSRect實例分析

    這篇文章主要介紹了Objective-C中常用的結(jié)構體NSRange,NSPoint,NSSize(CGSize),NSRect實例分析,有助于更加直觀的理解Object-C常用的結(jié)構體,需要的朋友可以參考下
    2014-07-07
  • 詳解C語言之文件操作下)

    詳解C語言之文件操作下)

    這篇文章主要介紹了關于C語言文件操作方法的相關資料,小編覺得這篇文章寫的還不錯,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-11-11
  • Cocos2d-x UI開發(fā)之場景切換代碼實例

    Cocos2d-x UI開發(fā)之場景切換代碼實例

    這篇文章主要介紹了Cocos2d-x UI開發(fā)之場景切換代碼實例,cocos2d-x中的場景切換是通過導演類調(diào)用相應的方法完成的,本文通過代碼和詳細注釋來說明,需要的朋友可以參考下
    2014-09-09

最新評論

萍乡市| 防城港市| 澜沧| 龙陵县| 绥化市| 玉田县| 临颍县| 舒城县| 鹤岗市| 平果县| 哈尔滨市| 永新县| 内丘县| 睢宁县| 定陶县| 罗城| 穆棱市| 含山县| 文安县| 类乌齐县| 崇义县| 株洲市| 洛南县| 亚东县| 崇州市| 宁津县| 丹凤县| 石狮市| 漾濞| 四子王旗| 乐东| 兴安县| 铁力市| 南和县| 阿鲁科尔沁旗| 济南市| 盈江县| 吴忠市| 叙永县| 陈巴尔虎旗| 长宁县|