当前位置: 首页 > news >正文

深圳网站建设东营安徽建设厅网站打不开

深圳网站建设东营,安徽建设厅网站打不开,公司网站建设空间,vs网页设计教程在《Kinect开发教程二#xff1a;OpenNI读取深度图像与彩色图像并显示》中#xff0c;小斤介绍了OpenNI读取深度与彩色图像数据的方法#xff0c;并且借助OpenCV进行显示。OpenNI2在接口上与OpenNI有了较大变化#xff0c;具体更新可以查看《OpenNI Migration Guide》。从获…在《Kinect开发教程二OpenNI读取深度图像与彩色图像并显示》中小斤介绍了OpenNI读取深度与彩色图像数据的方法并且借助OpenCV进行显示。OpenNI2在接口上与OpenNI有了较大变化具体更新可以查看《OpenNI Migration Guide》。从获取深度彩色传感器的数据而言小斤觉得调用更为直观但对于Kinect一大缺憾是不支持OpenNI2提供的深度与彩色图像配准的方法(体现在下文中的device.isImageRegistrationModeSupported()方法)。但使用Kinect的童鞋也不必沮丧在OpenNI2.1 beta中小斤看到了新增的convertDepthToColorCoordinates()方法可以做一些深度与彩色坐标数据的转化它的效果应该 是与device.setImageRegistrationMode( IMAGE_REGISTRATION_DEPTH_TO_COLOR )类似的有兴趣的童鞋可以尝试一下。在显示方面小斤还是使用OpenCV这次是使用OpenCV的C接口进行操作。/*************************OpenNI2 Deep, Color and Fusion ImageAuthor: Xin Chen, 2013.2Blog: http://blog.csdn.net/chenxin_130*************************/#include #include #include #include OpenNI.h#include opencv2/core/core.hpp#include opencv2/highgui/highgui.hpp#include opencv2/imgproc/imgproc.hppusing namespace std;using namespace cv;using namespace openni;void CheckOpenNIError( Status result, string status ){if( result ! STATUS_OK )cerr status Error: OpenNI::getExtendedError() endl;}int main( int argc, char** argv ){Status result STATUS_OK;//OpenNI2 imageVideoFrameRef oniDepthImg;VideoFrameRef oniColorImg;//OpenCV imagecv::Mat cvDepthImg;cv::Mat cvBGRImg;cv::Mat cvFusionImg;cv::namedWindow(depth);cv::namedWindow(image);cv::namedWindow(fusion);char key0;//【1】// initialize OpenNI2result OpenNI::initialize();CheckOpenNIError( result, initialize context );// open deviceDevice device;result device.open( openni::ANY_DEVICE );//【2】// create depth streamVideoStream oniDepthStream;result oniDepthStream.create( device, openni::SENSOR_DEPTH );//【3】// set depth video modeVideoMode modeDepth;modeDepth.setResolution( 640, 480 );modeDepth.setFps( 30 );modeDepth.setPixelFormat( PIXEL_FORMAT_DEPTH_1_MM );oniDepthStream.setVideoMode(modeDepth);// start depth streamresult oniDepthStream.start();// create color streamVideoStream oniColorStream;result oniColorStream.create( device, openni::SENSOR_COLOR );// set color video modeVideoMode modeColor;modeColor.setResolution( 640, 480 );modeColor.setFps( 30 );modeColor.setPixelFormat( PIXEL_FORMAT_RGB888 );oniColorStream.setVideoMode( modeColor);//【4】// set depth and color imge registration modeif( device.isImageRegistrationModeSupported(IMAGE_REGISTRATION_DEPTH_TO_COLOR ) ){device.setImageRegistrationMode( IMAGE_REGISTRATION_DEPTH_TO_COLOR );}// start color streamresult oniColorStream.start();while( key!27 ){// read frameif( oniColorStream.readFrame( oniColorImg ) STATUS_OK ){// convert data into OpenCV typecv::Mat cvRGBImg( oniColorImg.getHeight(), oniColorImg.getWidth(), CV_8UC3, (void*)oniColorImg.getData() );cv::cvtColor( cvRGBImg, cvBGRImg, CV_RGB2BGR );cv::imshow( image, cvBGRImg );}if( oniDepthStream.readFrame( oniDepthImg ) STATUS_OK ){cv::Mat cvRawImg16U( oniDepthImg.getHeight(), oniDepthImg.getWidth(), CV_16UC1, (void*)oniDepthImg.getData() );cvRawImg16U.convertTo( cvDepthImg, CV_8U, 255.0/(oniDepthStream.getMaxPixelValue()));//【5】// convert depth image GRAY to BGRcv::cvtColor(cvDepthImg,cvFusionImg,CV_GRAY2BGR);cv::imshow( depth, cvDepthImg );}//【6】cv::addWeighted(cvBGRImg,0.5,cvFusionImg,0.5,0,cvFusionImg);cv::imshow( fusion, cvFusionImg );key cv::waitKey(20);}//cv destroycv::destroyWindow(depth);cv::destroyWindow(image);cv::destroyWindow(fusion);//OpenNI2 destroyoniDepthStream.destroy();oniColorStream.destroy();device.close();OpenNI::shutdown();return 0;}小斤由上到下解释一把【1】使用OpenNI::initialize()方法进行初始化对于错误处理可以使用OpenNI::getExtendedError()方法。在这里Device对象打开任意一个可用设备。【2】在OpenNI2中可以通过创建VideoStream视频流对象来读取设备的深度图像和色彩图像数据。【3】对于VideoStream视频流对象我们可以设备它的Mode包括分辨率FPS像素格式等等。对于像素格式的类型可以使用 VideoStream的getSensorInfo()方法获得目前Kinect只有PIXEL_FORMAT_DEPTH_1_MM可供选择。【4】如果设备支持深度与彩色图像配准的话小斤在这里使用OpenNI2自带的接口进行配准。在while循环中各个VideoStream对象通过readFrame()来读取对应的图像数据。【5】将OpenNI的图像数据转换为OpenCV可显示的图像格式。对于彩色图像可以先将数据塞入OpenCV三通道(8位)RGB对象再转换到 BGR来显示。对于深度图像先放入单通道(16位)对象(这是因为深度数据的值域较大)最近将深度值等比例缩小到[0,255]的值域中作为灰度图 显示。【6】最后的图像融合由于addWeighted()方法需要两个输入图像是同一类型所以小斤首先将深度灰度图(单通道)转化为BGR图像这样就 与彩色图像一致了。再通过该方法进行融合小斤使用的比例是0.50.5也就是融合图像的每个像素点的值都是(深度图像该点的像素值*0.5) (彩色图像该点的像素值*0.5)。----------------------------------作者小斤(陈忻)新浪围脖小斤陈本文属于原创文章如需转载引用请注明原文作者和链接谢谢。
http://www.sadfv.cn/news/41303/

相关文章:

  • 做网站需不需要营业执照目前主流网站开发所用软件
  • 辽阳建设银行网站长春星宿网站建设公司怎么样
  • 虚拟主机空间发布网站海南网站建设推广公司哪家好
  • 安徽网站优化价格咨询连云港建设网站
  • 网站的功能有哪些十大互联网培训机构
  • 怎么做一个网站送给女朋友seo是怎么优化推广的
  • 代做机械设计的网站鄂州手机网站设计
  • 河南公司网站可以做天津备案吗郑州软件开发公司
  • 湛蓝 网站开发如何在腾讯云建设网站
  • 做阿里巴巴类似的网站吗内黄县建设局网站
  • 建设主管部门网站查询苏州网站建设师
  • 网站建设预期达到的效果公司网站的建站要点
  • 做特价的网站百度友链大全
  • h5在哪个网站上做域名服务器在哪个国家
  • 宝塔网站301重定向怎么做如何自己做一个网页
  • 该怎么给做网站的提页面需求什么软件发短视频可以赚钱
  • 移动网站开发框架建立网站 wordpress
  • wordpress建站侵权东莞公司网络建设
  • 国外网站建设推广高端房屋设计公司
  • 明星网站策划书网站关键词如何优化
  • 网站后台用什么做搭建小程序需要准备什么
  • 网站开发技术可行性分析怎么写合肥瑶海区最新房价
  • 做销售网站需要多少钱网站群建设优点
  • 酷炫网站首页触屏版网站开发
  • 定西市网站建设企业谈谈你对网络营销的认识
  • 创建网站的准备网站运营维护工作内容
  • 南宁建企业网站公司公司网站上传图片大小
  • 长沙响应式网站建设网络系统管理技能大赛linux
  • 青岛开发区建网站公司wordpress内容只有自已可见
  • 中国建设银行金华分行网站学人工智能后悔死了