资源简介
可在Windows环境中使用,利用opencv和vs软件,环境配置好之后,更改程序中的相应图片,就可以得到双目视觉的视差图
代码片段和文件信息
#include“stdafx.h“
#include
#include
#include
#include
#include
#include
#include
using namespace std;
using namespace cv;
bool left_mouse = false;
typedef Point_ Point2s;
IplImage* src = 0;
IplImage* dst = 0;
void on_mouse(int event int x int y int flags void* ustc) //在图像上显示坐标
{
static CvPoint pre_pt = { -1-1 };
static CvPoint cur_pt = { -1-1 };
CvFont font;
cvInitFont(&font CV_FONT_HERSHEY_SIMPLEX 0.5 0.5 0 1 CV_AA);//初始化字体结构体
char temp[16];
//char label2[20];
if (event == CV_EVENT_LBUTTONDOWN)//点击显示坐标
{
cvCopy(dst src);
sprintf(temp “(%d%d)“ x y);
//sprintf(label2 “Pixel:(%d%d)“ x y);
printf(temp “Pixel:(%d%d)“ x y);
printf(“\n“);
printf(“\n“);
pre_pt = CvPoint(xy);
cvPutText(src temp pre_pt &font cvScalar(0 0 0 255));
cvCircle(src pre_pt 3 CvScalar(255 0 0 0) CV_FILLED CV_AA 0);
cvShowImage(“src“src);
cvCopy(src dst);
}
else if (event == CV_EVENT_MOUSEMOVE && !(flags & CV_EVENT_FLAG_LBUTTON))//鼠标追踪
{
cvCopy(dst src);
sprintf(temp “(%d%d)“ x y);
cur_pt = cvPoint(x y);
cvPutText(src temp cur_pt &font cvScalar(0 0 0 255));
cvShowImage(“src“ src);
}
else if (event == CV_EVENT_MOUSEMOVE && (flags & CV_EVENT_FLAG_LBUTTON))//鼠标追踪
{
cvCopy(dst src);
sprintf(temp “(%d%d)“ x y);
cur_pt = cvPoint(x y);
cvPutText(src temp cur_pt &font cvScalar(0 0 0 255));
cvRectangle(src pre_pt cur_pt cvScalar(0 255 0 0) 1 8 0);
cvShowImage(“src“ src);
}
else if (event == CV_EVENT_LBUTTONUP)
{
sprintf(temp “(%d%d)“ x y);
cur_pt = cvPoint(x y);
cvPutText(src temp cur_pt &font cvScalar(0 0 0 255));
cvCircle(src cur_pt 3 cvScalar(255 0 0 0) CV_FILLED CV_AA 0);
cvRectangle(src pre_pt cur_pt cvScalar(0 255 0 0) 1 8 0);
cvShowImage(“src“ src);
cvCopy(src dst);
}
}
static void print_help()
{
printf(“\nDemo stereo matching converting L and R images into disparity and point clouds\n“);
printf(“\nUsage: stereo_match [--algorithm=bm|sgbm|hh|sgbm3way] [--blocksize=]\n“
“[--max-disparity=] [--scale=scale_factor>] [-i=] [-e=]\n“
“[--no-display] [-o=] [-p=]\n“);
}
static void saveXYZ(const char* filename const Mat& mat)
{
const double max_z = 1.0e4;
FILE* fp = fopen(filename “wt“); //FILE *fp 是声明,声明fp是指针,用来指向FILE类型的对象
for(int y = 0; y < mat.rows; y++)
{
for(int x = 0; x < mat.cols; x++)
{
Vec3f point = mat.at(y x);//Vec3f表示的是3通道float类型的 Vect,就相当于3通道float类型的图像,mat.at(y x)是访问图像的一种方式
if(fabs(point[2] -
相关资源
- 人脸识别(opencv_facedetect_v4l2)
- 基于opencv的模板匹配代码
- opencv图片扫描以及校正
- opencv手部轮廓识别以及轨迹识别
- opencv2 3D标定.cpp
- 基于opencv漫水填充算法综合
- opencv激光中心线的提取
- OpenCV Computer Vision Application Programming
- 基于图割的图像分割OpenCV+MFC实现
- 识别魔方颜色
- opencv版俄罗斯方块源码
- VS2013 / MFC + OpenCV 2.4.9实现视频的播放
- 粒子滤波器+目标跟踪的C++实现,VS2
- 张平OpenCV算法精讲基于python和C++教材
- 虹膜识别开源代码OSIRIS4.1基于opencv
- Sift特征点提取与匹配opencv库
- YCbCr、混合高斯以及YCbCg肤色检测模型
- 光流法代码
- OpenCV打开摄像机显示在MFC窗口工程源
- 使用c++读取图像到二维矩阵
- 三维点云的圆柱面拟合
- MFC+OPENCV摄像机标定程序
- 基于特征脸的人脸识别MFC+OpenCV
- opencv图像处理MFC
- OPENCV人脸检测加角点检测并输出坐标
- FillHole.rar
- 道路提取算法 c++ opencv
- PCA代码实现详解
- opencv卡尔曼滤波
- SeamCarving opencv c++
评论
共有 条评论