欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Opencv基于文字檢測去圖片水印的實(shí)現(xiàn)示例

 更新時(shí)間:2023年09月01日 09:19:24   作者:stonewu  
去水印是個(gè)麻煩事,本文就來介紹一種方法Opencv基于文字檢測去圖片水印的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下

做了一個(gè)簡單的去水印功能,基于文字檢測去圖片水印。效果如下:

插件功能代碼參考如下:

using namespace cv::dnn;
TextDetectionModel_DB *textDetector=0;
void getTextDetector()
{
     if(textDetector)return;
     String modelPath = "text_detection_DB_TD500_resnet18_2021sep.onnx";  //模型權(quán)重文件
    textDetector=new TextDetectionModel_DB(modelPath);
    float binThresh = 0.3;                                      //二值圖的置信度閾值
    float polyThresh  = 0.5 ;                                   //文本多邊形閾值
    double unclipRatio = 2.0;      //檢測到的文本區(qū)域的未壓縮比率,gai比率確定輸出大小
    uint maxCandidates = 200;
    textDetector->setBinaryThreshold(binThresh)
        .setPolygonThreshold(polyThresh)
        .setUnclipRatio(unclipRatio)
        .setMaxCandidates(maxCandidates);
    double scale = 1.0 / 255.0;
    int height = 736;                                                   //輸出圖片長寬
    int width = 736;
    Size inputSize = Size(width, height);
    Scalar mean = Scalar(122.67891434, 116.66876762, 104.00698793);
    textDetector->setInputParams(scale, inputSize, mean);
}
void deWaterMarkTextDetection(Mat &input,Mat &output,Mat &src,string)
{
    getTextDetector();
    // 推理
    std::vector<std::vector<Point>> results;
    textDetector->detect(input, results);
    Mat mask = Mat::zeros(input.size(), CV_8U);
    fillPoly(mask, results,Scalar::all(255));
    //將掩模進(jìn)行膨脹,使其能夠覆蓋圖像更大區(qū)域
    Mat kernel = getStructuringElement(MORPH_RECT, Size(5, 5));
    dilate(mask, mask, kernel);
    //使用inpaint進(jìn)行圖像修復(fù)
    Mat result;
    inpaint(src, mask, output, 1, INPAINT_NS);
}

到此這篇關(guān)于Opencv基于文字檢測去圖片水印的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Opencv 去圖片水印內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++模擬實(shí)現(xiàn)stack和Queue的操作示例

    C++模擬實(shí)現(xiàn)stack和Queue的操作示例

    這篇文章主要介紹了C++模擬實(shí)現(xiàn)stack和Queue的操作示例,文中通過代碼示例給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-06-06
  • C語言實(shí)現(xiàn)靜態(tài)順序表的實(shí)例詳解

    C語言實(shí)現(xiàn)靜態(tài)順序表的實(shí)例詳解

    這篇文章主要介紹了C語言實(shí)現(xiàn)靜態(tài)順序表的實(shí)例詳解的相關(guān)資料,這里提供是幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下
    2017-08-08
  • C語言實(shí)現(xiàn)帶頭結(jié)點(diǎn)的鏈表的創(chuàng)建、查找、插入、刪除操作

    C語言實(shí)現(xiàn)帶頭結(jié)點(diǎn)的鏈表的創(chuàng)建、查找、插入、刪除操作

    這篇文章主要介紹了C語言實(shí)現(xiàn)帶頭結(jié)點(diǎn)的鏈表的創(chuàng)建、查找、插入、刪除操作方法,對于了解數(shù)據(jù)結(jié)構(gòu)中鏈表的各項(xiàng)操作有很好的借鑒價(jià)值,需要的朋友可以參考下
    2014-09-09
  • 利用C++制作人生模擬器游戲的示例代碼

    利用C++制作人生模擬器游戲的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C++制作一個(gè)當(dāng)下很火的人生模擬器游戲,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-05-05
  • C++中四種加密算法之DES源代碼

    C++中四種加密算法之DES源代碼

    本篇文章主要介紹了C++中四種加密算法之DES源代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。
    2016-11-11
  • 淺談C++如何求等差素?cái)?shù)列

    淺談C++如何求等差素?cái)?shù)列

    這篇文章主要介紹了淺談C++如何求等差素?cái)?shù)列,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • C語言使用順序表實(shí)現(xiàn)電話本功能

    C語言使用順序表實(shí)現(xiàn)電話本功能

    這篇文章主要為大家詳細(xì)介紹了C語言使用順序表實(shí)現(xiàn)電話本功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • 簡單對比C語言中的fputs()函數(shù)和fputc()函數(shù)

    簡單對比C語言中的fputs()函數(shù)和fputc()函數(shù)

    這篇文章主要介紹了簡單對比C語言中的fputs()函數(shù)和fputc()函數(shù),注意其之間的區(qū)別,需要的朋友可以參考下
    2015-08-08
  • C++大小字母的轉(zhuǎn)換方式

    C++大小字母的轉(zhuǎn)換方式

    這篇文章主要介紹了C++大小字母的轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C++中菱形繼承的解釋與處理詳解

    C++中菱形繼承的解釋與處理詳解

    菱形繼承是多重繼承中跑不掉的,Java拿掉了多重繼承,輔之以接口。C++中雖然沒有明確說明接口這種東西,但是只有純虛函數(shù)的類可以看作Java中的接口,下面這篇文章主要給大家介紹了關(guān)于C++中菱形繼承的解釋與處理的相關(guān)資料,需要的朋友可以參考下
    2022-02-02

最新評論