日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java给视频添加水印_javaCV视频添加水印

發布時間:2023/12/10 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java给视频添加水印_javaCV视频添加水印 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

想要給視頻添加水印,需要從視頻中取出圖像幀,給圖像幀添加文字、圖片水印即可

首先需要取到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视频添加水印的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。