opencv读取鱼眼双目图像并校正+保存为左右视图
来源:互联网 发布:便宜php空间 编辑:程序博客网 时间:2024/06/04 00:46
#include"stdafx.h"
#include <iostream>
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
using namespace cv;
using namespace std;
void main()
{
VideoCapture capture(0);
capture.set(CV_CAP_PROP_FRAME_WIDTH, 1280);
capture.set(CV_CAP_PROP_FRAME_HEIGHT, 480);
if (!capture.isOpened())
{
return;
}
Mat frame;
Mat frame_L, frame_R;
char imgL[64];
char imgR[64];
int i = 0;
Mat rmap[2][2];
FileStorage fs("remap.yml", CV_STORAGE_READ);
if (fs.isOpened())
{
fs["MapLx"] >> rmap[0][0];
fs["MapLy"] >> rmap[0][1];
fs["MapRx"] >> rmap[1][0];
fs["MapRy"] >> rmap[1][1];
fs.release();
}
else
cout << "Error: can not save the intrinsic parameters\n";
char key = ' ';
while (key!='q')
{
//读取下一帧
/*if (!capture.read(frame))
{
cout << "读取视频失败" << endl;
return;
}*/
capture>>frame;
cout << frame.cols << "======" << frame.rows << endl;
frame_L = frame.rowRange(0, 480).colRange(0, 640);
frame_R = frame.rowRange(0, 480).colRange(640, 1280);
remap(frame_L, frame_L, rmap[0][0], rmap[0][1], CV_INTER_LINEAR);
remap(frame_R, frame_R, rmap[1][0], rmap[1][1], CV_INTER_LINEAR);
sprintf(imgL,"D:\\image\\L%d.pgm", i);
sprintf(imgR,"D:\\image\\R%d.pgm", i);
imwrite(imgL, frame_L);
imwrite(imgR, frame_R);
i += 1;
imshow("L", frame);
imshow("R", frame_R);
waitKey(100);
}
}
#include <iostream>
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
using namespace cv;
using namespace std;
void main()
{
VideoCapture capture(0);
capture.set(CV_CAP_PROP_FRAME_WIDTH, 1280);
capture.set(CV_CAP_PROP_FRAME_HEIGHT, 480);
if (!capture.isOpened())
{
return;
}
Mat frame;
Mat frame_L, frame_R;
char imgL[64];
char imgR[64];
int i = 0;
Mat rmap[2][2];
FileStorage fs("remap.yml", CV_STORAGE_READ);
if (fs.isOpened())
{
fs["MapLx"] >> rmap[0][0];
fs["MapLy"] >> rmap[0][1];
fs["MapRx"] >> rmap[1][0];
fs["MapRy"] >> rmap[1][1];
fs.release();
}
else
cout << "Error: can not save the intrinsic parameters\n";
char key = ' ';
while (key!='q')
{
//读取下一帧
/*if (!capture.read(frame))
{
cout << "读取视频失败" << endl;
return;
}*/
capture>>frame;
cout << frame.cols << "======" << frame.rows << endl;
frame_L = frame.rowRange(0, 480).colRange(0, 640);
frame_R = frame.rowRange(0, 480).colRange(640, 1280);
remap(frame_L, frame_L, rmap[0][0], rmap[0][1], CV_INTER_LINEAR);
remap(frame_R, frame_R, rmap[1][0], rmap[1][1], CV_INTER_LINEAR);
sprintf(imgL,"D:\\image\\L%d.pgm", i);
sprintf(imgR,"D:\\image\\R%d.pgm", i);
imwrite(imgL, frame_L);
imwrite(imgR, frame_R);
i += 1;
imshow("L", frame);
imshow("R", frame_R);
waitKey(100);
}
}
1 0
- opencv读取鱼眼双目图像并校正+保存为左右视图
- Opencv将zed获取的左右视图拆分为左右两幅图像并分别保存
- OpenCV双目校正试验
- .net读取图像并保存为文件
- 【opencv】鱼眼图像畸变校正
- opencv读取不同步双目视频并显示
- 双目定标及双目校正-opencv实现
- 双目视觉学习笔记(一)--qtcreator下使用opencv读取并存储双摄像头图像
- 双目视觉系统 图像校正
- OpenCv 下读取摄像头并保存成yuv图像
- 双目相机标定之OpenCV获取左右相机图像+MATLAB单目标定+双目标定
- matlab 读取txt数据并保存为图像
- opencv读取摄像机并保存为avi视频
- 读取、修改、保存图像---opencv
- OpenCV读取、复制、保存图像
- OpenCV 读取、修改、保存图像
- opencv读取、显示、保存图像
- 【opencv】鱼眼图像畸变校正——透视变换
- 针对处理器个数和队列长度之间关系研究手稿(1)
- maven install 不下载依赖的jar包
- MySQL数据库系列之数据库设计原则
- Android提高第二十篇之MediaPlayer播放网络音频
- tomcat 日志关闭和设置
- opencv读取鱼眼双目图像并校正+保存为左右视图
- Postgresql源码分析: 动态Hash
- linux安装ABySS
- 判断2个input值是否有值存在,有才能被提交
- Spring的配置项及其作用分析
- 【Android】支持https接口调用的简单证书校验
- 关于伸缩列表的ExpandableListView+CheckBox
- Oracle创建表后修改表字段,增加字段
- Activiti基础教程--02(初识Activiti流程设计工具、了解Activiti bpmn图表对应的XML文件)