资源简介
可在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] -
相关资源
- CvImgCtrl 演示程序
- 用OpenCV实现Photoshop色阶调整算法
- 贝叶斯抠图C++源代码
- emgucv&opencv图像处理函数说明
- opencv实现分水岭算法
- 人工势场法C++版及利用opencv(or matl
- OpenCV+C++图像处理项目14个
- 用VS2015+opencv3.4.2+C++编写Yolov3目标检测
- 计算图像的平均灰度值
- OpenCV2.4.8
- 基于opencv的人脸识别程序-代码详解
- OpenCV通过直方图均衡化增强图像对比
- OpenCV种子填充实现彩色图像分割的代
- 基于 OPENCV 对三角形 的 角度检测
- 相机标定与图像畸变校正程序
- moravec算子c++代码
- openCV中stitching_detailed.cpp
- 11个常用OpenCV+C++图像处理
- opencv计算5*5邻域方差图
- opencv 视觉 追踪跟踪 经典kcf算法
- vc++6.0配置OpenCV
- 基于OpenCV的图像检索系统(源码)
- test_opencv.cpp
- opencv提取图片中人轮廓
- Python3+Opencv343环境搭建 dll load failed问
- 04_图像编辑器实现.zip
- 基于opencv人眼定位算法C++工程
- 图像连续拼接算法源码
- opencv 2.4.8 官方最新版安装与配置
- C++实现opencv+yolo+tensorflow+deepsort.txt
评论
共有 条评论