计算机视觉介绍
2007-07-13 21:13
155 查看
http://blog.csdn.net/hardVB/archive/2007/07/11/1685493.aspxwww
opencv提供了双目视觉检测距离信息的函数,试着使用了两个摄像头获得两副图像测试一下,感觉背景单纯,目标较小的情况下,得到的效果较好一些。(下图分别是左图像,右图像,得到的深度图像)
用一个长的物体来测试深度,效果不好。如下:
难点问题是两个摄像机即使是同一个机型,同样的镜头,得到的图像颜色有所轻微的差别,导致效果不好。
而使用一个摄像机平移左右得到的结果会更好一些。以下图片是opencv提供的图片,效果较好。
代码:
#include "stdafx.h"
#include <iostream>
#include <string.h>
#include <cxcore.h>
#include <cv.h>
#include <cvaux.h>
#include <highgui.h>
#include <fstream>
IplImage *image = 0 ; //原始图像
using namespace std;
int main(int argc, char* argv[])
{
IplImage* srcLeft = cvLoadImage("left.jpg",1);
IplImage* srcRight = cvLoadImage("right.jpg",1);
IplImage* leftImage = cvCreateImage(cvGetSize(srcLeft), IPL_DEPTH_8U, 1);
IplImage* rightImage = cvCreateImage(cvGetSize(srcRight), IPL_DEPTH_8U, 1);
IplImage* depthImage = cvCreateImage(cvGetSize(srcRight), IPL_DEPTH_8U, 1);
cvCvtColor(srcLeft, leftImage, CV_BGR2GRAY);
cvCvtColor(srcRight, rightImage, CV_BGR2GRAY);
cvFindStereoCorrespondence( leftImage, rightImage, CV_DISPARITY_BIRCHFIELD, depthImage, 50, 15, 3, 6, 8, 15 );
cvNamedWindow("win1",1);
cvNamedWindow("win2",1);
cvNamedWindow("win3",1);
cvNormalize(depthImage,depthImage,0,255,CV_MINMAX,0 );
for(;;)
{
cvShowImage("win1",depthImage);
cvShowImage("win2",srcLeft);
cvShowImage("win3",srcRight);
if(cvWaitKey(20)==27) break;
}
return 0;
}
opencv提供了双目视觉检测距离信息的函数,试着使用了两个摄像头获得两副图像测试一下,感觉背景单纯,目标较小的情况下,得到的效果较好一些。(下图分别是左图像,右图像,得到的深度图像)
用一个长的物体来测试深度,效果不好。如下:
难点问题是两个摄像机即使是同一个机型,同样的镜头,得到的图像颜色有所轻微的差别,导致效果不好。
而使用一个摄像机平移左右得到的结果会更好一些。以下图片是opencv提供的图片,效果较好。
代码:
#include "stdafx.h"
#include <iostream>
#include <string.h>
#include <cxcore.h>
#include <cv.h>
#include <cvaux.h>
#include <highgui.h>
#include <fstream>
IplImage *image = 0 ; //原始图像
using namespace std;
int main(int argc, char* argv[])
{
IplImage* srcLeft = cvLoadImage("left.jpg",1);
IplImage* srcRight = cvLoadImage("right.jpg",1);
IplImage* leftImage = cvCreateImage(cvGetSize(srcLeft), IPL_DEPTH_8U, 1);
IplImage* rightImage = cvCreateImage(cvGetSize(srcRight), IPL_DEPTH_8U, 1);
IplImage* depthImage = cvCreateImage(cvGetSize(srcRight), IPL_DEPTH_8U, 1);
cvCvtColor(srcLeft, leftImage, CV_BGR2GRAY);
cvCvtColor(srcRight, rightImage, CV_BGR2GRAY);
cvFindStereoCorrespondence( leftImage, rightImage, CV_DISPARITY_BIRCHFIELD, depthImage, 50, 15, 3, 6, 8, 15 );
cvNamedWindow("win1",1);
cvNamedWindow("win2",1);
cvNamedWindow("win3",1);
cvNormalize(depthImage,depthImage,0,255,CV_MINMAX,0 );
for(;;)
{
cvShowImage("win1",depthImage);
cvShowImage("win2",srcLeft);
cvShowImage("win3",srcRight);
if(cvWaitKey(20)==27) break;
}
return 0;
}
相关文章推荐
- 看AI产品经理如何介绍“计算机视觉”(基于实战经验和案例)
- 看AI产品经理如何介绍“计算机视觉”(基于实战经验和案例)
- 实战案例:AI产品经理如何介绍“计算机视觉”?
- 计算机视觉领域研究资源及期刊、会议介绍
- 微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)
- 【转】计算机视觉领域研究资源及期刊、会议介绍
- 腾讯 AI Lab 计算机视觉中心人脸 & OCR团队近期成果介绍(3)
- VLfeat--轻量级的--计算机视觉库的介绍
- 看AI产品经理如何介绍“计算机视觉”(基于实战经验和案例)
- 机器视觉开源处理库汇总-介绍n款计算机视觉库/人脸识别开源库/软件 -几种图像处理类库的比较-视觉相关网站
- 机器视觉开源处理库汇总-介绍n款计算机视觉库/人脸识别开源库/软件 -几种图像处理类库的比较-视觉相关网站
- 计算机视觉领域研究资源及期刊、会议介绍
- 实战案例:AI产品经理如何介绍“计算机视觉”?
- 【计算机视觉】<前景检测>常用背景模型介绍
- 计算机视觉领域研究资源及期刊、会议介绍
- 看AI产品经理如何介绍“计算机视觉”(基于实战经验和案例)
- 斯坦福李飞飞-深度学习与计算机视觉 计算机视觉历史回顾与介绍
- (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)
- 计算机视觉和模式识别领域SCI期刊介绍
- 【计算机视觉】<前景检测>非参数背景模型介绍<一>