最好的电子音响科技diy制作网站

haoDIY_音响电子电脑科技DIY小制作发明

当前位置: 主页 > 电子DIY > 工具仪表 > 仪器仪表 >

自制简易激光测距仪(2)

时间:2015-06-30 16:50来源:未知 作者:admin 点击:
#include opencv2/highgui/highgui.hpp int main( int argc, char** argv ) { cvNamedWindow( Example, CV_WINDOW_AUTOSIZE ); CvCapture* capture; if (argc==1) { capture = cvCreateCameraCapture( 0 ); } else
#include "opencv2/highgui/highgui.hpp"

int main( int argc, char** argv ) {
   cvNamedWindow( "Example", CV_WINDOW_AUTOSIZE );
   CvCapture* capture;
   if (argc==1) {
       capture = cvCreateCameraCapture( 0 );
   } else {
       capture = cvCreateFileCapture( argv[1] );
   }
   assert( capture != NULL );

   IplImage* frame;
   while(1) {
       frame = cvQueryFrame( capture );
       if( !frame ) break;

       // 对取到的图像做处理

       unsigned int    W, H;
       unsigned int    row, col;
       unsigned long   i;
       unsigned int    max_row;
       unsigned int    max_col;
       unsigned char   max_val = 0;

       const double    gain = 0.000795302;
       const double    offset = 0.0053867;
       const double    h_cm = 7.350;              // 我的摄像头和激光头距离7.35cm
       double          range;
       unsigned int    pixels_from_center;

       W = frame->width;
       H = frame->height;
       unsigned char *img_d = (unsigned char *)frame->imageData;
       
       // 假设激光点是最亮点,最简单的实现,一般来说确实是这样,但是在背景干扰大的情况下会误判,还有很大的提高空间

       for (row = 0; row < H; row++) {
           for (col = 0; col < W; col++) {
               i = (unsigned long)(row*3*W + 3*col);

               if (*(img_d + i) >= max_val)
               {
                   max_val = *(img_d + i);
                   max_row = row;
                   max_col = col;
               }
           }
       }

       max_val = 0; (责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(2)
100%
相关文章
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容