javaCV調用視頻demo以及遇到過的錯誤

要時常嘗試有趣的東西,一切都是爲了想使用百度平臺的人臉檢測的接口,因此來學習一下這個新的東西,例子百度一大把,主要是想把遇到的坑列一列,以便後來者更快速的查找錯誤。

項目準備

1.我的是myeclipse,jdk1.8【要注意jdk的版本,低於1.7的會報錯】
2.maven項目
3.我GitHub地址

開始

1、引用依賴

	<!-- javacv依賴包 -->
		<dependency>
		    <groupId>org.bytedeco</groupId>
		    <artifactId>javacv</artifactId>
		    <version>1.4.1</version>
		</dependency>
		<dependency>
			<groupId>org.bytedeco.javacpp-presets</groupId>
			<artifactId>opencv-platform</artifactId>
			<version>3.4.1-1.4.1</version>
		</dependency> 

創建java文件,複製粘貼

/**
 * 
 */
package test;

import javax.swing.JFrame;

import org.bytedeco.javacv.CanvasFrame;
import org.bytedeco.javacv.FrameGrabber.Exception;
import org.bytedeco.javacv.OpenCVFrameGrabber;

/**
 * @author zwh_182
 * @email 
 * @createTime 2018-11-13上午9:33:51
 */
public class Test {

	/**
	 * 方法作用:調用windows平臺的攝像頭窗口視頻 創建時間:2018-11-13 上午9:33:51
	 * 
	 * @throws Exception
	 * @throws InterruptedException
	 */
	public static void main(String[] args) throws Exception,
			InterruptedException {
		OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);
		grabber.start(); // 開始獲取攝像頭數據
		CanvasFrame canvas = new CanvasFrame("攝像頭");// 新建一個窗口
		canvas.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		canvas.setAlwaysOnTop(true);

		while (true) {
			if (!canvas.isDisplayable()) {// 窗口是否關閉
				grabber.stop();// 停止抓取
				System.exit(2);// 退出
			}
			canvas.showImage(grabber.grab());// 獲取攝像頭圖像並放到窗口上顯示, 這裏的Frame
												// frame=grabber.grab();
												// frame是一幀視頻圖像

			Thread.sleep(50);// 50毫秒刷新一次圖像
		}
	}

}

報這種錯的,是因爲依賴缺了

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jniopencv_core in java.library.path
	at java.lang.ClassLoader.loadLibrary(Unknown Source)
	at java.lang.Runtime.loadLibrary0(Unknown Source)
	at java.lang.System.loadLibrary(Unknown Source)

將以上兩個依賴補上即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章