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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2023/12/10 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java给视频添加水印_javaCV视频添加水印 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

首先需要取到BufferedImage,通過(guò)這個(gè)就可以用Java的方式添加水印

從grabber中獲取BufferedImage:

//獲取BufferedImage可以給圖像幀添加水印

Java2DFrameConverter javaconverter=new Java2DFrameConverter();

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

獲取到了BufferedImage就可以開(kāi)始給視頻幀添加文字或者圖片水印

用java添加水印:

(1)攝像頭視頻抓取

(2)Frame和Mat相互轉(zhuǎn)換

(3)給圖像添加文字

(4)把添加水印文字的圖像轉(zhuǎn)換為Frame并顯示到窗口

(5)保存圖片

代碼實(shí)現(xiàn)

運(yùn)行后會(huì)出現(xiàn)一個(gè)窗口,窗口中會(huì)實(shí)時(shí)顯示日期和eguid正向和eguid翻轉(zhuǎn)字符,關(guān)閉窗口相當(dāng)于結(jié)束程序運(yùn)行。

該程序會(huì)自動(dòng)保存第一幀圖像到本地eguid.jpg文件。

// 轉(zhuǎn)換器,用于Frame/Mat/IplImage相互轉(zhuǎn)換

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

// 使用OpenCV抓取本機(jī)攝像頭,攝像頭設(shè)備號(hào)默認(rèn)0

OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);

// 開(kāi)啟抓取器

grabber.start();

//做好自己!--eguid版權(quán)所有,轉(zhuǎn)載請(qǐng)注明出處!

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;

// 關(guān)閉窗口即停止運(yùn)行

while (cFrame.isShowing()) {

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

// 取一幀視頻(圖像),并轉(zhuǎn)換為Mat

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

// 加文字水印,opencv_imgproc.putText(圖片,水印文字,文字位置,字體,字體大小,字體顏色,字體粗度,文字反鋸齒,是否翻轉(zhuǎn)文字)

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

false);

// 翻轉(zhuǎn)字體,文字平滑處理(即反鋸齒)

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();// 停止抓取器

// 手動(dòng)釋放資源

scalar1.close();

scalar2.close();

point1.close();

point2.close();

point3.close();

總結(jié)

以上是生活随笔為你收集整理的java给视频添加水印_javaCV视频添加水印的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。