码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • opencv 提取选中区域内指定hsv颜色的水印


    基于《QT 插件化图像算法研究平台》做的功能插件。提取选中区域内指定hsv颜色的水印。

      《QT 插件化图像算法研究平台》有个HSV COLOR PICK功能,可以很直观、方便地分析出水印 的hsv颜色,比如, 蓝色:100,180,0,255,100,255。

        然后利用 opencv 提取选中区域内指定hsv颜色的水印。

       为下一步水印定位与去除提供mask。

    《QT 插件化图像算法研究平台》有文件列表、图片展示、图片框选、窗口图像同步移动与放大等功能。

    操作步骤:

    1、在文件列表选中文件。

    2、把图像移动、并放大至合适位置。

    鼠标左键可拖动图片、鼠标滚轮可缩放图片。上下两窗口图片自动同步移动与缩放。

    3、框选ROI

    鼠标右键可画出“选择框”,按住鼠标右键,可移动与缩放“选择框”。

    4、提取选中区域内指定hsv颜色的水印。

    在功能列表里,选择“deWaterMark”,操作:"exec"

    deWaterMark的参考代码如下:

    1. void deWaterMark(Mat &input,Mat &output,Mat &src,string arg)
    2. {
    3. Mat mask;
    4. colorHsvMask(input,mask,src,arg); //生成指定hsv颜色的mask
    5. getSelection(mask,mask,src,arg); //获取选中区域
    6. matClipboard= mask;//存放至剪贴板
    7. output= mask;
    8. }
    9. void colorHsvMask(Mat &input,Mat &output,Mat &,string arg)
    10. {
    11. //生成指定hsv颜色的mask,参数:hmin,hmax,smin,smax,vmin,vmax
    12. // 蓝色:100,180,0,255,100,255
    13. //用途:1、匹配 2、去水印
    14. vector argVec;
    15. splitArg(arg,argVec);
    16. auto hmin=atoi(argVec[0].c_str());
    17. auto hmax=atoi(argVec[1].c_str());
    18. auto smin=atoi(argVec[2].c_str());
    19. auto smax=atoi(argVec[3].c_str());
    20. auto vmin=atoi(argVec[4].c_str());
    21. auto vmax=atoi(argVec[5].c_str());
    22. Mat hsv;
    23. cvtColor(input, hsv, COLOR_BGR2HSV);
    24. Mat mask;
    25. inRange(hsv, Scalar(hmin, smin, vmin), Scalar(hmax, smax, vmax), mask);
    26. output=mask;
    27. }
    28. void getSelection(Mat &input,Mat &output,Mat &,string )
    29. {
    30. //获取选中区域
    31. QRect selectRect= processWinGetSelection();
    32. if(selectRect.width()==0)
    33. {
    34. debugX(" no selection " );
    35. output=input;
    36. return;
    37. }
    38. auto topLeft=selectRect.topLeft();
    39. auto bottomRight=selectRect.bottomRight();
    40. int x=topLeft.x();
    41. int y=topLeft.y();
    42. int x1=bottomRight.x();
    43. int y1=bottomRight.y();
    44. if(x<0)x=0;
    45. if(y<0)y=0;
    46. if(x1>input.cols)x1=input.cols;
    47. if(y1>input.rows)y1=input.rows;
    48. auto roi=input(Rect(x,y,x1-x,y1-y));
    49. output=roi.clone();
    50. }

    5、从剪贴板查看 提取的水印

    《QT 插件化图像算法研究平台》有剪贴板功能,可查看剪贴板中的图片。

    后期预告:

    1、利用提取的水印,在图像中定位水印位置。

    2、如何获取 水印 的hsv颜色

    《QT 插件化图像算法研究平台》有个HSV COLOR PICK功能,可以很直观、方便地分析出水印 的hsv颜色,比如, 蓝色:100,180,0,255,100,255

    3、自动去除水印

    4、自动保存去除水印的图片

    《QT 插件化图像算法研究平台》其它内容:

    Opencv 图像金字塔----高斯和拉普拉斯

    OpenCV仿Photoshop曲线调整图像亮度与色彩

    QT 插件化图像算法软件架构

    Opencv 图像暗通道调优去雾

    opencv 提取选中区域内指定 hsv 颜色的水印

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

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

    QT 插件化图像算法研究平台

    Opencv 图像亮度调节的几种方式

    Opencv使用QT的线程注意事项

    欢迎广大朋友沟通交流,微信/QQ:23245175,加好友,请备注:插件软件。

  • 相关阅读:
    C和指针 第14章 预处理器 14.5 其他指令
    Nuxt3 的生命周期和钩子函数(三)
    element -ui table表格内容无限滚动 使用插件vue-seamless-scroll
    浏览器网页上如何播放dash视频、hls(m3u8)视频和flv格式视频?
    Unity中 UI Shader的基本功能
    HDFS 短路读的实现(全网最全面深入讲解)
    del键出现问题无法删除的解决方法
    Redis学习笔记:Jedis
    devops学习(八) 搭建镜像仓库---jenkins推送镜像
    AVProVideo☀️十、来给视频设置封面
  • 原文地址:https://blog.csdn.net/stonewu/article/details/132641456
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号