# javacv4axe **Repository Path**: CaiDongyu/javacv4axe ## Basic Information - **Project Name**: javacv4axe - **Description**: 这是javacv的一个实践项目,跨平台(linux、windows),还可以在树梅派等板卡系统上运行,为学习和使用opencv制作视觉处理、摄像头画面处理和展示的项目提供方便。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 3 - **Created**: 2021-04-15 - **Last Updated**: 2024-07-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # javacv4axe #### 介绍 这是javacv的一个实践项目,跨平台(linux、windows),还可以在树梅派等板卡系统上运行,为学习和使用opencv制作视觉处理、摄像头画面处理和展示的项目提供方便。 #### 软件架构 #### 安装教程 1. git clone 或者 下载源码到本地 2. 进入到pom.xml文件所在目录,mvn install安装到本地maven仓库 3. 在项目中添加如下maven依赖 ```xml com.javacv4axe javacv4axe 21.3.23 org.bytedeco javacv-platform 1.4.4 org.axe axe 21.3.11 ``` #### 使用说明 1.如果想本地Jframe预览摄像头画面 ```java import org.axe.Axe; import org.bytedeco.javacv.CanvasFrame; import com.javacv4axe.core.AsynchronousFrameHandler; import com.javacv4axe.core.CammeraWatcher; import com.javacv4axe.core.FramePack; public class Test { public static void main(String[] args) { try { Axe.init(); new CammeraWatcher( 500,500,//这两个参数是指定摄像头捕捉画面大小,可以去掉,使用摄像头默认像素大小 new AsynchronousFrameHandler() { // 使用java的JFrame显示图像 private CanvasFrame cFrame = new CanvasFrame("预览", CanvasFrame.getDefaultGamma() / 2.2); @Override public void cacheFrame(FramePack framePack) { cFrame.showImage(framePack.getEditFrame());//展示非全画幅 } @Override public String name() { return "jFrame"; } @Override public boolean handle(FramePack framePack) { return false;//对画面帧什么都不处理 } } ).startWatch(0);//从设备0开始寻找摄像头 } catch (Exception e) { e.printStackTrace(); } } } ``` 2.如果想浏览器预览摄像头画面 ```java import org.axe.Axe; import com.javacv4axe.core.CammeraWatcher; import com.javacv4axe.video.HttpVideoHandler; public class Test2 { public static void main(String[] args) { try { Axe.init(); new CammeraWatcher( 500,500, new HttpVideoHandler()//HttpVideoHandler还有另外一个带参数的构造方法,可以设置ROI尺寸 ).startWatch(0);//从设备0开始寻找摄像头 } catch (Exception e) { e.printStackTrace(); } } } ``` 3.如果想试一下自带的人连检测 ```java import org.axe.Axe; import org.axe.helper.ioc.BeanHelper; import org.bytedeco.javacv.CanvasFrame; import com.javacv4axe.core.AsynchronousFrameHandler; import com.javacv4axe.core.CammeraWatcher; import com.javacv4axe.core.FramePack; import com.javacv4axe.example.FaceDetectHandler; public class Test3 { public static void main(String[] args) { try { Axe.init(); new CammeraWatcher( 500,500, new AsynchronousFrameHandler() { // 使用java的JFrame显示图像 private CanvasFrame cFrame = new CanvasFrame("人脸检测", CanvasFrame.getDefaultGamma() / 2.2); @Override public void cacheFrame(FramePack framePack) { cFrame.showImage(framePack.getEditFrame());//展示非全画幅 } @Override public String name() { return "jFrame"; } @Override public boolean handle(FramePack framePack) { return false;//对画面帧都不做处理 } }, //人脸检测器,这个人脸检测器因为是有定时任务的,所以必须从Bean容器中获取, //那所以要配置axe.properties文件,将com.javacv4axe.example路径纳入扫描 BeanHelper.getBean(FaceDetectHandler.class) ).startWatch(0);//从设备0开始寻找摄像头 } catch (Exception e) { e.printStackTrace(); } } } ``` 4.如果想试一下自带的二维码识别,只需要将上面的人脸识别处理器替换成FaceDetectHandler即可 ```java BeanHelper.getBean(FaceDetectHandler.class) ```