如何通过javacv实现图片去水印(附代码)

  

最近工作需求要做图片去水印的功能,研究了一段时间发现javacv能做这个功能,然后总结了一下。
  

  

<强>首先导入maven

        & lt; dependency>   & lt; groupId> org.bytedeco   & lt; artifactId> javacv   & lt; version> 1.4.3   & lt; exclusions>   & lt; exclusion>   & lt; groupId> org.bytedeco   & lt; artifactId> javacpp   & lt;/exclusion>   & lt; exclusion>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> flycapture   & lt;/exclusion>   & lt; exclusion>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> libdc1394   & lt;/exclusion>   & lt; exclusion>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> libfreenect   & lt;/exclusion>   & lt; exclusion>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> libfreenect2   & lt;/exclusion>   & lt; exclusion>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> librealsense   & lt;/exclusion>   & lt; exclusion>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> videoinput   & lt;/exclusion>   & lt; exclusion>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> tesseract   & lt;/exclusion>   & lt; exclusion>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> leptonica   & lt;/exclusion>   & lt; exclusion>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> flandmark   & lt;/exclusion>   & lt; exclusion>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> artoolkitplus   & lt;/exclusion>   & lt;/exclusions>   & lt;/dependency>   & lt; dependency>   & lt; groupId> org.bytedeco   & lt; artifactId> javacv-platform   & lt; version> 1.4.3   & lt; exclusions>   & lt; exclusion>   & lt; groupId> org.bytedeco   & lt; artifactId> javacv   & lt;/exclusion>   & lt; exclusion>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> flycapture-platform   & lt;/exclusion>   & lt; exclusion>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> libdc1394-platform   & lt;/exclusion>   & lt; exclusion>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> libfreenect-platform   & lt;/exclusion>   & lt; exclusion>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> libfreenect2-platform   & lt;/exclusion>   & lt; exclusion>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> librealsense-platform   & lt;/exclusion>   & lt; exclusion>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> videoinput-platform   & lt;/exclusion>   & lt; exclusion>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> tesseract-platform   & lt;/exclusion>   & lt; exclusion>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> leptonica-platform   & lt;/exclusion>   & lt; exclusion>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> flandmark-platform   & lt;/exclusion>   & lt; exclusion>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> artoolkitplus-platform   & lt;/exclusion>   & lt;/exclusions>   & lt;/dependency>   & lt; dependency>   & lt; groupId> org.bytedeco.javacpp-presets   & lt; artifactId> ffmpeg   & lt; version> 4.0.2-1.4.3   & lt;/dependency>      

<强>开始进行实现:
  

  

  

前景背景求差法

        # include & lt; opencv2 \ \ core.hpp>核心;   # include & lt; opencv2 \ highgui \ highgui.hpp>   # include & lt; opencv2 \ imgproc \ imgproc.hpp>   # include“opencv2/图片/photo.hpp”      # include & lt; iostream>      使用名称空间性病;   使用名称空间的简历;      int主要(int命令行参数个数,char * * argv)   {   简历::VideoCapture帽(“C:/用户/zyy/桌面/test_logs/test.mp4”);   如果(! cap.isOpened ())   {   cout & lt; & lt;“没有!”& lt; & lt;endl;   返回1;   }      面具,垫结果dst1;   垫inpaintMask1;   垫inpaintMask=imread (“C:/用户/zyy/桌面/test_logs/log5.jpg”);   简历::cvtColor (inpaintMask、inpaintMask CV_BGR2GRAY);   简历:namedWindow("结果",1);   简历:namedWindow(“框架”,1);   int i=0;   (,)   {   垫框架;   ,盖比的在框架;   如果(! frame.data)   {   cout & lt; & lt;“结束了!”& lt; & lt;endl;   打破;   }      如果(我& lt;=2)//看视频,自己调试确定这个值,二十几帧之后左上角那个小图才出来,所以选了30   {   如果(我==2)   {   掩码=框架;   简历:cvtColor(面具,面具,CV_BGR2GRAY);//垫inpaintMask1(面具。行,面具。关口CV_32FC1 1);   inpaintMask1=面具;   }   }   其他的   {   简历:bitwise_and(因此,面具,面具);//& lt;跨在前景背景求差法& lt;/span>   如果我比;2,,我& lt;=40)   {   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

如何通过javacv实现图片去水印(附代码)