Opencv基于文字检测去图片水印

做了一个简单的去水印功能,基于文字检测去图片水印。效果如下:

插件功能代码参考如下:

cpp 复制代码
using namespace cv::dnn;
TextDetectionModel_DB *textDetector=0;
void getTextDetector()
{
     if(textDetector)return;
     String modelPath = "text_detection_DB_TD500_resnet18_2021sep.onnx";  //模型权重文件

    textDetector=new TextDetectionModel_DB(modelPath);

    float binThresh = 0.3;                                      //二值图的置信度阈值
    float polyThresh  = 0.5 ;                                   //文本多边形阈值
    double unclipRatio = 2.0;      //检测到的文本区域的未压缩比率,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));


    //将掩模进行膨胀,使其能够覆盖图像更大区域
    Mat kernel = getStructuringElement(MORPH_RECT, Size(5, 5));
    dilate(mask, mask, kernel);

    //使用inpaint进行图像修复
    Mat result;
    inpaint(src, mask, output, 1, INPAINT_NS);
}
相关推荐
ai产品老杨8 小时前
【架构深评】如何基于 GB28181 与 RTSP 协议栈,构建解耦、异构的百万级 AI 视频流媒体管理平台?(附开源源码)
人工智能·架构·媒体
蓝速科技8 小时前
蓝速科技端庄型 AI 数字人在严肃场景的落地应用指南
人工智能·科技
招标采购导航网9 小时前
标讯质量评分体系:招标采购导航网如何给每条标讯打“可信度分”和“价值分”
大数据·人工智能
AI客栈9 小时前
Go 后端服务开发:并发编程模型从 Goroutine 到生产级调度的工程实践
人工智能
程序员小嬛9 小时前
2026年因果推断与多目标优化结合的前沿思路
人工智能·深度学习·神经网络·transformer·论文笔记
mpr0xy9 小时前
行走编程:把你的 Mac 变成一台随身 AI 开发工作站
人工智能·macos·ai·大语言模型·ai编程·ai写需求
秋枫969 小时前
ublox(u-box)GPS模块通过串口指令配置NMEA语句输出
人工智能
车车不吃香菇9 小时前
使用java实现即梦文生视频、图生视频,火山引擎「即梦 AI - 视频生成 3.0 Pro」调用 Demo(原生 HTTP 签名版)。
人工智能·火山引擎
段一凡-华北理工大学9 小时前
工业领域的Hadoop架构学习~系列文章22:Hadoop生态展望 - 面向未来的技术演进
大数据·人工智能·hadoop·分布式·学习·架构·高炉炼铁
人工小情绪9 小时前
Antigravity 2.0 更新:它不只是一个 AI IDE 了
ide·人工智能·ai agent·antigratity