Opencv手工选择图片区域去水印

这篇具有很好参考价值的文章主要介绍了Opencv手工选择图片区域去水印。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

QT 插件化图像算法研究平台的功能在持续完善,补充了一个人工选择图片区域的功能。

其中,图片选择功能主要代码如下:

QRect GLImageWidget::getSeleted()
{
    QRect ajust(0,0,0,0);
    if(image.isNull() || !hasSelection)return ajust;
    
    double w=1.0* imageSize.width()/ adaptImageSize.width();
    double h=1.0* imageSize.height()/ adaptImageSize.height();

    ajust.setLeft((selection.left()-leftPos)*w/scaleVal);
    ajust.setWidth(selection.width()*w/scaleVal);
    ajust.setTop((selection.top()-topPos)*h/scaleVal);
    ajust.setHeight(selection.height()*h/scaleVal);


    return ajust;
}

需要考虑因素:图片原始大小、窗口大小、图片显示在窗口的大小、图片在窗口的移动位置、图片在窗口的缩放、用户在窗口上框选的矩阵。

手工选择图片区域去水印 效果如下:左上角人工框选处的文字给去除了。

Opencv手工选择图片区域去水印,opencv,人工智能,计算机视觉

主要代码参考如下:文章来源地址https://www.toymoban.com/news/detail-695546.html

void deWaterMarkSelection(Mat &input,Mat &output,Mat &src,string)
{

    auto selectRect= processWinGetSelection();
    if(selectRect.width()==0)
    {
        output=input;
        return;
    }
    Mat mask = Mat::zeros(input.size(), CV_8U);
    auto topLeft=selectRect.topLeft();
    auto bottomRight=selectRect.bottomRight();

    Point rookPoints[1][4];
    rookPoints[0][0] =Point(topLeft.x(),topLeft.y());//左上角
    rookPoints[0][1] = Point(bottomRight.x(),topLeft.y());//右上角
    rookPoints[0][2] = Point(bottomRight.x(),bottomRight.y());//右下角
    rookPoints[0][3] =Point(topLeft.x(),bottomRight.y());//左下角
    int npt[]={4};//二维数组 每列长度
    const Point* ppt[1] = {rookPoints[0]};//所有多边形点坐标
    fillPoly(mask, ppt, npt, 1, Scalar::all(255));

    //使用inpaint进行图像修复
    Mat result;
    inpaint(src, mask, output, 1, INPAINT_NS);
}

到了这里,关于Opencv手工选择图片区域去水印的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 6. QT环境下使用OPenCV(利用鼠标实现图像的ROI区域选择)

    1. 说明 一张图像显示的内容可能并非所有的都是有用信息,有时需要选定某些区域做出特殊的处理。在OPenCV当中可以在图像上响应鼠标的操作,选取出图像上的特殊区域 — ROI区域。 效果展示: 2. 实现步骤 首先在QtCreator中创建一个新的widget项目,并配置好OPenCV的开发环境,

    2024年02月12日
    浏览(47)
  • 基于OpenCV实现对图片及视频中感兴趣区域颜色识别

    学习路线指引(点击解锁) 知识定位 人群定位 🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 💛Python量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量

    2023年04月09日
    浏览(54)
  • uniapp+uView 实现自定义水印相机,拍完照片给图片加水印,从相册选择图片加水印功能

    样式图如上所示 页面分为取景框和拍照完成后预览,本功能设计到,公共上传组件,相机也页面,获取定位地址,页面中如何用该上传组件 UI实现 取景界面分为上下两个部分,上部分为camera取景框组件,下部分为操作区域。 取景框组件上的关闭和水印,以及拍完照片后的略

    2024年04月14日
    浏览(113)
  • opencv-16 图像去水印示例

    常用的去水印方法: 克隆修复工具:使用图像处理软件(如Photoshop)中的克隆修复工具可以选择一个样本区域,然后将其复制到水印区域,以覆盖水印。这种方法在简单的水印上可能效果不错,但复杂的水印可能需要更多的手动调整。 模糊或马赛克处理:可以使用模糊或马

    2024年02月12日
    浏览(28)
  • OpenCV实现高斯模糊加水印

    2024年02月15日
    浏览(36)
  • 铅华洗尽,粉黛不施,人工智能AI基于ProPainter技术去除图片以及视频水印(Python3.10)

    视频以及图片修复技术是一项具有挑战性的AI视觉任务,它涉及在视频或者图片序列中填补缺失或损坏的区域,同时保持空间和时间的连贯性。该技术在视频补全、对象移除、视频恢复等领域有广泛应用。近年来,两种突出的方案在视频修复中崭露头角:flow-based propagation和

    2024年02月08日
    浏览(57)
  • 【Opencv】图像分割——区域生长

    Python 3.8.8 PyCharm 2021 opencv-python   区域生长的基本思想是将具有相似性质的像素集合起来构成区域。具体先对每个需要分割的区域找一个种子像素作为生长的起点,然后将种子像素周围邻域中与种子像素具有相同或相似性质的像素(根据某种事先确定的生长或相似准则来判定

    2024年02月05日
    浏览(42)
  • OpenCV(十四):ROI区域截取

    在OpenCV中,你可以使用Rect对象或cv::Range来截取图像的感兴趣区域(Region of Interest,ROI)。 方法一:使用Rect对象截取图像 Rect_(_Tp _x, _Tp _y, _Tp _width,_Tp _height) Tp:数据类型,C++模板特性,可以用int、double、float等替换。 _x:矩形区域左上角第一个像素的x坐标,也就是第一个像素

    2024年02月10日
    浏览(36)
  • Opencv 如何获取roi区域

    关于图片处理,经常遇到的一个问题是如何获取roi区域(说白了就是抠图),并对roi区域赋值,比如说赋值成黑色。 首先,关于如何获取roi区域,opencv的Mat类中提供了两种方法。代码如下: 上述两种获取roi的方式是通过重载()运算符实现的,根据上面的描述可以看到通过上面

    2024年02月09日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包