收藏 分销(赏)

javaCV总结.doc

上传人:仙人****88 文档编号:9071906 上传时间:2025-03-12 格式:DOC 页数:4 大小:68.50KB
下载 相关 举报
javaCV总结.doc_第1页
第1页 / 共4页
javaCV总结.doc_第2页
第2页 / 共4页
点击查看更多>>
资源描述
javaCV使用总结 编写人:曾定新 日期:2014-04-23 1.简介 JavaCV 是一款开源的视觉处理库,基于GPLv2协议。 2.特点 JavaCV是对各种常用计算机视觉库的封装后的一组jar包,其中封装了OpenCV、libdc1394、 OpenKinect、videoInput和ARToolKitPlus等计算机视觉编程人员常用库的接口,可以通过其中的utility类方便的在包 括Android在内的Java平台上调用这些接口。 另外JavaCV还带有硬件加速的全屏幕图像显示(CanvasFrame),易于在多个内核中执行并行代码(并 行),用户友好的几何和色彩的相机和投影仪校准 (GeometricCalibrator,ProCamGeometricCalibrator,ProCamColorCalibrator ),检测和特征点(ObjectFinder),一类是实现投影,摄像系统(直接图像对齐设置匹配主要 GNImageAligner,ProjectiveTransformer,ProjectiveGainBiasTransformer,ProCamTransformer 和ReflectanceInitializer),以及在JavaCV类杂项功能。 3.总结 JavaCV官网: 1. 先从官网下载JAR包 下载javacv-0.7-bin.zip和javacv-0.7-cppjars.zip 2.新建java项目,导入jar包javacv-0.7-bin.zip 中的javacpp.jar,javacv.jar,javacv-0.7-cppjars.zip中的opencv.jar,其余jar包的要注意的X86和X64之分,关键看你的计算机安装的JDK是多少位的),javaCV_demo,测试代码如下,以下代码实现调用摄像并拍照。 import java.awt.Graphics2D; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import com.googlecode.javacv.CanvasFrame; import com.googlecode.javacv.FrameGrabber.Exception; import com.googlecode.javacv.OpenCVFrameGrabber; import com.googlecode.javacv.cpp.opencv_core.IplImage; import static com.googlecode.javacv.cpp.opencv_core.cvReleaseImage; public class Demo{ public static void main(String[] args) throws Exception { final String savedImageFile = "d:\\my1.jpg"; //拍摄所存储的文件 OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0); IplImage image = null; try { grabber.start(); image =grabber.grab(); //将所获取摄像头数据放入IplImage } catch (Exception e2) { // TODO Auto-generated catch block e2.printStackTrace(); } //开始获取摄像头数据 int width = image.width(); int height = image.height(); final BufferedImage bImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics2D bGraphics = bImage.createGraphics(); CanvasFrame canvas = new CanvasFrame("Camera",1); canvas.setCanvasSize(200, 200); canvas.getCanvas().addMouseListener(new MouseAdapter(){ public void mouseClicked(MouseEvent e){ try{ ImageIO.write(bImage, "jpg", new File(savedImageFile));//数据写入my.jpg } catch (IOException e1){ // TODO Auto-generated catch block e1.printStackTrace(); } } }); try { while(canvas.isVisible() && (image=grabber.grab()) != null){ canvas.showImage(image); bGraphics.drawImage(image.getBufferedImage(),null,0,0); } } catch (Exception e2) { // TODO Auto-generated catch block e2.printStackTrace(); } cvReleaseImage(image); //释放内存当中的图片 grabber.stop(); canvas.dispose(); //销毁摄像头 } } 3. 结合以上的例子使用中遇到的问题和解决方案。 1) .在swing窗口显示摄像头所照的画面的定位和显示画面设置的大小。 canvas.setCanvasSize(200, 200); 设置显示画面大小 canvas.getCanvas();显示画板 JPanel sysLogo = new JPanel(); sysLogo.setBounds(x, y, Width, Hight);显示画面的定位 sysLogo.add(canvas.getCanvas()); 2).摄像头所照到的画面的数据传送。 while(canvas.isVisible() && (image=grabber.grab()) != null){ canvas.showImage(image); //摄像头数据显示 bGraphics.drawImage(image.getBufferedImage(),null,0,0); //储存数据 } 以上代码只要摄像头一启动while就会不停的在跑直到摄像头停止,在咱们的项目的当中要加载swing窗口而又要加载摄像头,所以它们之间有冲突加载了摄像头就会导致咱们swing的界面加载不出来,我现在的处理是用了一个线程去加载摄像头。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服