想要给视频添加水印,需要从视频中取出图像帧,给图像帧添加文字、图片水印即可

首先需要取到BufferedImage,通过这个就可以用Java的方式添加水印

从grabber中获取BufferedImage:

//获取BufferedImage可以给图像帧添加水印

Java2DFrameConverter javaconverter=new Java2DFrameConverter();

BufferedImage buffImg=javaconverter.convert(grabber.grab());

获取到了BufferedImage就可以开始给视频帧添加文字或者图片水印

用java添加水印:

(1)摄像头视频抓取

(2)Frame和Mat相互转换

(3)给图像添加文字

(4)把添加水印文字的图像转换为Frame并显示到窗口

(5)保存图片

代码实现

运行后会出现一个窗口,窗口中会实时显示日期和eguid正向和eguid翻转字符,关闭窗口相当于结束程序运行。

该程序会自动保存第一帧图像到本地eguid.jpg文件。

// 转换器,用于Frame/Mat/IplImage相互转换

OpenCVFrameConverter.ToIplImage converter = new OpenCVFrameConverter.ToIplImage();

// 使用OpenCV抓取本机摄像头,摄像头设备号默认0

OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);

// 开启抓取器

grabber.start();

//做好自己!--eguid版权所有,转载请注明出处!

CanvasFrame cFrame = new CanvasFrame("做好自己!--eguid!", CanvasFrame.getDefaultGamma() / grabber.getGamma());

cFrame.setAlwaysOnTop(true);

cFrame.setVisible(true);

// 水印文字位置

Point point1 = new Point(10, 50);

Point point2 = new Point(200, 200);

Point point3 = new Point(200, 240);

// 颜色

Scalar scalar1 = new Scalar(0, 255, 255, 0);

Scalar scalar2 = new Scalar(255, 0, 0, 0);

Frame frame = null;

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

int index = 0;

// 关闭窗口即停止运行

while (cFrame.isShowing()) {

if ((frame = grabber.grabFrame()) != null) {

// 取一帧视频(图像),并转换为Mat

Mat mat = converter.convertToMat(grabber.grabFrame());

// 加文字水印,opencv_imgproc.putText(图片,水印文字,文字位置,字体,字体大小,字体颜色,字体粗度,文字反锯齿,是否翻转文字)

opencv_imgproc.putText(mat, "eguid!", point2, opencv_imgproc.CV_FONT_VECTOR0, 2.2, scalar2, 1, 0,

false);

// 翻转字体,文字平滑处理(即反锯齿)

opencv_imgproc.putText(mat, "eguid!", point3, opencv_imgproc.CV_FONT_VECTOR0, 2.2, scalar2, 1, 20,

true);

opencv_imgproc.putText(mat, sdf.format(new Date()), point1, opencv_imgproc.CV_FONT_ITALIC, 0.8, scalar1,

2, 20, false);

// 在窗口显示处理后的图像,Frame frame=converter.convert(mat);

cFrame.showImage(converter.convert(mat));

if (index == 0) {

// 保存第一帧图片到本地

opencv_imgcodecs.imwrite("eguid.jpg", mat);

}

// 释放Mat资源

mat.release();

mat.close();

}

Thread.sleep(40);

index++;

}

cFrame.dispose();// 销毁窗口

grabber.stop();// 停止抓取器

// 手动释放资源

scalar1.close();

scalar2.close();

point1.close();

point2.close();

point3.close();

java给视频添加水印_javaCV视频添加水印相关推荐

  1. Android OpenGL添加水印并录制视频--抖音视频录制原理

    Android OpenGL添加水印并录制视频–抖音视频录制原理 简单的视频录制,我们可以使用MediaRecorder,具体示例可以参考Gitee: Camera2VideoJava 本文将介绍采集 ...

  2. android 小视频添加水印,安卓手机怎么给视频加水印 视频加水印的手机软件|微信小视频怎么加水印...

    感觉中午一个小时的午休时间更本不够似的,以至于现在的我还头昏脑胀的厉害,睡眼惺忪的我还得默默的敲击着键盘,全都是为了生活啊,算了不传递这些负能量了,来说说咱们今天的教程,是关于如何用手机给视频加水印的 ...

  3. IOS视频编辑,视频美颜,视频添加水印

    前言 用代码在简单视频编辑中,主要就是加美颜.水印(贴图).视频截取.视频拼接.音视频的处理,在美颜中,使用GPUImage即可实现多种滤镜.磨皮美颜的功能,并且可以脸部识别实时美颜等功能,这个有很多 ...

  4. java movie_最简单的视频网站(JavaEE+FFmpeg)

    本文记录一个最简单的视频网站系统.此前做过一些基于JavaEE中的 SSH (Strut2 + Spring + Hibernate)的网站系统,但是一直没有做过一个视频网站系统,所以就打算做一个&q ...

  5. Aspose.Java实现word转pdf,添加水印等操作

    Aspose.Java实现word转pdf,添加水印等操作 一. word转pdf 二. 文档插入水印 Aspose是一款商用版控件,支持各类文档操作,这里主要介绍如何在Springboot项目中使用 ...

  6. Java使用OpenCV3.2实现视频读取与播放

    Java使用OpenCV3.2实现视频读取与播放 OpenCV从3.x版本开始其JAVA语言的SDK支持视频文件读写,这样就极大的方便了广大Java语言开发者学习与使用OpenCV,通过摄像头或者视频 ...

  7. Java 利用ffmpeg工具实现视频MP4转m3u8

    Java 利用ffmpeg工具实现视频MP4转m3u8(一) 前言 (一)ffmpeg工具转码 1.如何安装ffmpeg工具 2.如何使用ffmpeg工具进行视频转码 (二)播放m3u8文件 1.vi ...

  8. Java,Android,计算机原理视频,500G视频资料

    1.JavaScript视频教程 链接: http://pan.baidu.com/s/1gd57FVH 密码: d9ei 2.JPA视频教程 链接: http://pan.baidu.com/s/1 ...

  9. Java代码实现阿里云视频上传

    目录 视频上传 视频删除 视频上传 新建一个springboot项目,结构大概这样 添加依赖 <dependency><groupId>com.aliyun</group ...

  10. java 视频流 读取_Java之视频读取IO流解帧实施方案

    获取视频处理对象的方式有很多,读取本地文件.读取url.读取摄像头等,而直接读流解析视频的实施方案却难以寻觅.此处有两种方案处理视频流(此处设定场景为用户上传视频,同时两种方式均需服务端安装ffmpe ...

最新文章

  1. DeeCamp 2020 赛题大公开!快来看你想选哪个
  2. 世界坐标系到观察坐标系的变换步骤_《3D数学基础》提炼总结(九)矩阵和线性变换...
  3. IBM推出127量子比特处理器,超越谷歌和中科大
  4. LeetCode Sudoku Solver
  5. DIY走向高端化:用料成为比拼焦点
  6. Java-绘图相关技术
  7. 华为否认启动“塔山计划”;中金:苹果中国区下架微信概率较小;Linux Lab发布v0.5 rc3| 极客头条...
  8. ArcEngine中打开各种数据源(WorkSpace)的连接
  9. 哪个服务器支持高并发,IIS Web服务器支持高并发设置方法详解
  10. 【干货】python正则表达式应用笔记
  11. 疯狂猜颜色小游戏C++个人项目
  12. Unity3D项目Plugins目录组织
  13. MVC5-Scaffolder
  14. Android studio的ADBWifi使用
  15. 黑猴子的家:Scala 常用类型
  16. 使用Python对xlsx,csv, txt格式文件进行读、写并绘图
  17. Windows内核原理与实现之 NDIS(网络驱动程序接口规范)
  18. 各位对IE放尊重点没有他,你怎么下载其他浏览器,你们等黑丝和白丝她来了!
  19. Ubuntu16.04安装联想LJ2600D打印机驱动程序
  20. 深度学习项目实战(一):猫狗识别

热门文章

  1. 【CASS精品教程】CASS 9.2绘制地籍图详细实验案例教程
  2. python snap7 plc_python-snap7-master
  3. 优酷1080P的KUX视频如何快速转换成MP4格式
  4. 【libjpeg-turbo】安装指南[mac版]
  5. Rhino入门教程---莫比乌斯环建模
  6. 基于stc15f2k60s2芯片单片机编程(按键控制)
  7. matlab 试验设计,试验设计与MATLAB数据分析
  8. perl脚本 linux,linux – 通过Perl脚本设置环境变量
  9. 中美线径对照表_美国线规对照表
  10. Charles使用手册