关闭

一种粗略的普通摄像头深度信息提取方法

1324人阅读 评论(1) 收藏 举报
分类:

在这儿介绍一种粗略的普通摄像头深度信息提取方法,很简单,也很实用

“近者大而远者小”,根据目标物体的大小,可以粗略判断出物体的远近

 

我这里有一个简单的应用,控制图片的大小

视频演示:http://v.youku.com/v_show/id_XMjM2NDk4ODMy.html

 

截图:

 

 

大家可以自己试试看。

也可以下载代码:http://download.csdn.net/source/2979410

 

或者简单看一下:

[cpp] view plain copy
  1. int main(int argc,char** argv)  
  2. {  
  3.     CvCapture* capture=cvCreateCameraCapture(-1);  
  4.     if (!capture){  
  5.         cout<<"failed to open camera"<<endl;  
  6.         exit(0);  
  7.     }  
  8.     //image for show  
  9.     IplImage* img=cvLoadImage("Song.jpg");  
  10.     if (!img){  
  11.         cout<<"failed to load image"<<endl;  
  12.         exit(0);  
  13.     }  
  14.     CvSize showSize=cvGetSize(img);  
  15.   
  16.     //processing window size  
  17.     const CvSize winSizeProcess=cvSize(320,240);  
  18.     IplImage* imgColor=cvCreateImage(winSizeProcess,8,3);  
  19.     IplImage* imgGray=cvCreateImage(winSizeProcess,8,1);  
  20.       
  21.     int threshold=140;  
  22.     cvNamedWindow("processing");  
  23.     cvMoveWindow("processing",0,0);  
  24.     cvCreateTrackbar("threshold","processing",&threshold,200,NULL);  
  25.   
  26.     int oldImgErea=-1;  
  27.   
  28.     bool isZooming=false;  
  29.     IplImage* imgHand;  
  30.     while (imgHand=cvQueryFrame(capture)){  
  31.         cvResize(imgHand,imgColor);  
  32.         cvCvtColor(imgColor,imgColor,CV_RGB2YCrCb);  
  33.         cvSplit(imgColor,NULL,NULL,imgGray,NULL);  
  34.         cvThreshold(imgGray,imgGray,threshold,255,CV_THRESH_BINARY);  
  35.   
  36.         cvShowImage("processing",imgGray);  
  37.   
  38.         if (isZooming){  
  39.             cvErode(imgGray,imgGray);  
  40.             cvDilate(imgGray,imgGray);  
  41.   
  42.             CvTarget target;  
  43.             cvFindTarget(imgGray,target);  
  44.             if (target.erea>HandEreaThreshold){  
  45.                 float scale=1.0f;  
  46.                 if (oldImgErea>0){  
  47.                     scale=(float)target.erea/oldImgErea;      
  48.                 }  
  49.                 oldImgErea=target.erea;   
  50.   
  51.                 showSize.width*=scale;  
  52.                 showSize.height*=scale;   
  53.                 //in defense of limit extreme situation  
  54.                 if (showSize.width<4||showSize.height<4||  
  55.                     showSize.width>2000||showSize.width>2000){  
  56.                     showSize=cvGetSize(img);  
  57.                 }  
  58.             }  
  59.         }  
  60.           
  61.         IplImage* imgResized=cvCreateImage(showSize,8,3);  
  62.         cvResize(img,imgResized);  
  63.   
  64.         static int screenWidth=1024;  
  65.         static int screenHeight=768;  
  66.         cvMoveWindow("image",(screenWidth-showSize.width)>>1,(screenHeight-showSize.height)>>1);  
  67.         cvShowImage("image",imgResized);  
  68.           
  69.         cvReleaseImage(&imgResized);  
  70.         int keyPressed=cvWaitKey(3);  
  71.         if(keyPressed==27){  
  72.             break;  
  73.         }else if (keyPressed==' '){//start/strop zooming  
  74.             isZooming=!isZooming;  
  75.         }  
  76.     }  
  77.     cvReleaseImage(&img);  
  78.     cvReleaseCapture(&capture);  
  79.     return 0;  
  80. }  

0
0
查看评论

视频特征提取demo

背景 因为做目前的video-caption都只是根据已经有的视频特征数据来进行描述的生成,所以我们需要对于一个原生的视频文件生成特征。调研的一个方法是使用C3D的feature-extract 步骤 步骤很简单,几个简单的命令就解决问题了,中间也没有出啥错误,但是也是要参考caffe的安...
  • sl_950313
  • sl_950313
  • 2018-01-24 22:49
  • 28

3DHOG特征提取

  • 2015-06-24 16:32
  • 599KB
  • 下载

单目摄像机提取物体深度信息

  • 2013-08-15 13:18
  • 40.39MB
  • 下载

Mobileye采用单目摄像头做ADAS太不精确

Mobileye采用单目摄像头做ADAS太不精确?用双目摄像头的“中科慧眼”认为双目测距算法才是最精确的 Nicholas • 2016-01-05 18:53 ADAS(Advanced Driving Assistant System),即高级驾驶辅助系统...
  • Real_Myth
  • Real_Myth
  • 2016-05-16 14:26
  • 3841

几种深度摄像头简介

转自:http://www.cvchina.info/2010/06/28/brief-review-of-several-depth-camera/
  • scliu12345
  • scliu12345
  • 2014-06-04 10:00
  • 1755

深度摄像头测距原理简介

深度检测主要技术方法: 1.双目匹配(双RGB摄像头+可选的照明系统) 三角测量原理即目标点在左右两幅视图中成像的横坐标之间存在的差异(视差Disparity),与目标点到成像平面的距离成反比例的关系:Z = ft/d;得到深度信息。 双目匹配采用三角测量原理完全基于图像处理技术,通过寻找两个图像中...
  • jaylinzhou
  • jaylinzhou
  • 2017-04-26 17:49
  • 5550

3D深度摄像头

3D深度摄像头(RGBD Sensor) 产品应用范围(Application): Ø 智能电视、游戏机(Smart TV and PlayStation) Ø 3D扫描仪(3D Scanner) Ø 智能家电(Intelli...
  • RGBDsense006
  • RGBDsense006
  • 2017-01-07 15:35
  • 2088

安卓开发基础知识3(国内深度摄像头方案)

需求说明:安卓开发 内容       :双摄像头安卓手机调研 来自       :时间的诗 原文:http://www.tuicool.com/articles/zUzmAnu 引言:市场对深...
  • Times_poem
  • Times_poem
  • 2016-07-11 11:14
  • 1723

深度相机(六)--体感设备对比

华硕Xtion和微软kinect比较 1.     产品外观 2.     参数规格 以下参数摘自华硕Xtion Pro外包装盒: l  有效距离:3.5米~0.8米 l  有效角...
  • App_12062011
  • App_12062011
  • 2016-09-26 10:07
  • 6760

从单目视觉信息学习深度信息(一)

最近接触到了AR.Drone的无人机,开放接口这种事情最喜欢了,似乎可以用深度信息来控制无人机的运动,不过介于无人机只有单目摄像头的限制,不得不转换思维,开始搜集论文研究如何用单目视觉信息来获取深度。
  • lcc921528642
  • lcc921528642
  • 2015-11-16 11:20
  • 5109
    个人资料
    • 访问:1950720次
    • 积分:22334
    • 等级:
    • 排名:第389名
    • 原创:102篇
    • 转载:1385篇
    • 译文:6篇
    • 评论:262条
    联系方式
    个人邮箱: xuxiduo@zju.edu.cn
    QQ群:
    1)OpenCV俱乐部
        186168905

    2) 视频/音频/图像/算法/ML
        群1:148111910

        群2:157103105

    备注:加群需要回答问题,避免广告党。
    如果你是博客看到后加的,请注明“博客”并回答问题,只注明”博客“不回答问题的恕不加入。答案为和群相关的任何技术名词,不能出现1)和2)中的任何字眼
    博客专栏
    文章分类
    最新评论