资源简介
生成相机标定棋盘的c++程序,棋盘格大小为25mm,生成后直接就可以打印使用了。
代码片段和文件信息
/*
获取kinect原始图片序列并依时间保存,以100张为单位,获取的图片可用于kinect标定
*/
#include “kinect.h“
#include
#include
#include
#include
#include
using namespace cv;
using namespace std;
// 安全释放指针
template
inline void SafeRelease(Interface *& pInterfaceToRelease)
{
if (pInterfaceToRelease != NULL)
{
pInterfaceToRelease->Release();
pInterfaceToRelease = NULL;
}
}
// 保存所需数据的结构体
struct eachframe
{
string depth_name;
string rgb_name;
cv::Mat tmp_itD1;
cv::Mat tmp_itRGB1;
};
int main()
{
// 创建保存目录
CreateDirectory(L“.//images“ NULL);
// 获取Kinect设备
IKinectSensor* m_pKinectSensor;
ICoordinateMapper* m_pCoordinateMapper;
CameraIntrinsics* m_pCameraIntrinsics = new CameraIntrinsics();
HRESULT hr;
hr = GetDefaultKinectSensor(&m_pKinectSensor);
if (FAILED(hr))
{
return hr;
}
IMultiSourceframeReader* m_pMultiframeReader;
IBodyframeSource* m_pBodyframeSource;
IBodyframeReader* m_pBodyframeReader;
if (m_pKinectSensor)
{
hr = m_pKinectSensor->Open();
Sleep(1000);
if (SUCCEEDED(hr))
{
m_pKinectSensor->get_BodyframeSource(&m_pBodyframeSource);
// 获取多数据源到读取器
hr = m_pKinectSensor->OpenMultiSourceframeReader(
frameSourceTypes::frameSourceTypes_Color |
frameSourceTypes::frameSourceTypes_Infrared |
frameSourceTypes::frameSourceTypes_Depth
&m_pMultiframeReader);
}
}
if (SUCCEEDED(hr))
{
hr = m_pKinectSensor->get_CoordinateMapper(&m_pCoordinateMapper);
}
if (!m_pKinectSensor || FAILED(hr))
{
return E_FAIL;
}
// 获取深度相机内参并打印
if (SUCCEEDED(hr))
{
hr = m_pCoordinateMapper->GetDepthCameraIntrinsics(m_pCameraIntrinsics);
}
if (SUCCEEDED(hr))
{
cout << “FocalLengthX : “ << m_pCameraIntrinsics->FocalLengthX << endl;
cout << “FocalLengthY : “ << m_pCameraIntrinsics->FocalLengthY << endl;
cout << “PrincipalPointX : “ << m_pCameraIntrinsics->PrincipalPointX << endl;
cout << “PrincipalPointY : “ << m_pCameraIntrinsics->PrincipalPointY << endl;
cout << “RadialDistortionFourthOrder : “ << m_pCameraIntrinsics->RadialDistortionFourthOrder << endl;
cout << “RadialDistortionSecondOrder : “ << m_pCameraIntrinsics->RadialDistortionSecondOrder << endl;
cout << “RadialDistortionSixthOrder : “ << m_pCameraIntrinsics->RadialDistortionSixthOrder << endl;
}
// 三个数据帧及引用
IDepthframeReference* m_pDepthframeReference;
IColorframeReference* m_pColorframeReference;
IInfraredframeReference* m_pInfraredframeReference;
IInfraredframe* m_pInfraredframe;
IDepthframe* m_pDepthframe;
IColorframe* m_pColorframe;
// 四个个图片格式
Mat i_rgb(1080 1920 CV_8UC4); //注意:这里必须为4通道的图,Kinect的数据只能以Bgra格式传出
Mat i_depth(424 512 CV_8UC1);
Mat i_depth_raw(424 512 CV_16UC1);
Mat i_ir(424 512 CV_16UC1);
UINT16 *depthData = new UINT16[424 * 512];
UINT16 *irData = new UINT16[424 * 512];
IMultiSourceframe*
- 上一篇:rs编解码.c rs纠错码
- 下一篇:C语言实现的文字加密与解密小程序()
相关资源
- 人脸识别(opencv_facedetect_v4l2)
- 卡尔曼定位程序
- 基于opencv的模板匹配代码
- opencv图片扫描以及校正
- opencv手部轮廓识别以及轨迹识别
- opencv2 3D标定.cpp
- 基于opencv漫水填充算法综合
- opencv激光中心线的提取
- 基于VC、MATLAB的汽车制动性能仿真
- OpenCV Computer Vision Application Programming
- 基于图割的图像分割OpenCV+MFC实现
- MATLAB通信仿真及应用详解附超星阅读
- filtfilt C语言实现,可直接运行验证
- 识别魔方颜色
- opencv版俄罗斯方块源码
- VS2013 / MFC + OpenCV 2.4.9实现视频的播放
- 台湾林智仁开发的libsvm-3.0.1
- Matlab与C++混合程序设计第三版
- 粒子滤波器+目标跟踪的C++实现,VS2
- 粒子群算法及其代码实现
- 九轴姿态解算matlab源代码 两种方法代
- 张平OpenCV算法精讲基于python和C++教材
- 虹膜识别开源代码OSIRIS4.1基于opencv
- 经纬度坐标转换为平面坐标的matlab实
- Sift特征点提取与匹配opencv库
- YCbCr、混合高斯以及YCbCg肤色检测模型
- 光流法代码
- 数字图像处理与机器视觉——Visual
- OpenCV打开摄像机显示在MFC窗口工程源
- 利用FFT计算频谱图
评论
共有 条评论