Kinect彩色相机标定(一):彩色图像的采集

平台:Windows 7 x86,OpenCV2.4.9,OpenNI1.5.4.0,VS2010

首先采用了双边滤波对或得的彩色图像进行滤波,然后保存滤波后的图像。

#include <stdlib.h> #include <iostream> #include <string> #include <XnCppWrapper.h> #include <opencv2/opencv.hpp> using namespace std; using namespace xn; using namespace cv; //———————————【全局变量声明】———————————//Mat cvBGRImage, BilateralFilter_c_out; int g_nBilateralFilterValue=10;//双边滤波参数值int imageNumber = 0;//记录保存的图像的个数//———————————【全局函数声明】———————————//static void on_BilateralFilter_c(int, void *);//双边滤波器(彩色)void CheckOpenNIError(XnStatus eResult,string sStatus);//————————————【主函数】————————————//int main() { ImageMetaData imageMD; DepthMetaData depthMD; XnStatus eResult = XN_STATUS_OK; Context mContext;//初始化上下文对象 eResult = mContext.Init(); CheckOpenNIError(eResult, "Initialize context");ImageGenerator mImageGenerator;//创建彩色图像生产节点 eResult = mImageGenerator.Create(mContext); CheckOpenNIError(eResult, "Create image generator");XnMapOutputMode mapMode;//设置图像分辨率 mapMode.nXRes = 640; mapMode.nYRes = 480; mapMode.nFPS = 30; eResult = mImageGenerator.SetMapOutputMode(mapMode);eResult = mContext.StartGeneratingAll();//开始产生数据char key;while(!(eResult = mContext.WaitNoneUpdateAll())) {mImageGenerator.GetMetaData(imageMD);Mat cvRGBImage(imageMD.FullYRes(), imageMD.FullXRes(), CV_8UC3, (char*) imageMD.Data());cvtColor(cvRGBImage, cvBGRImage, CV_RGB2BGR);//======================【<0>双边滤波】====================//BilateralFilter_c_out = cvBGRImage.clone();bilateralFilter ( cvBGRImage, BilateralFilter_c_out, 10, 20, 5 );namedWindow("<0>双边滤波【效果图-彩色】"); imshow("<0>双边滤波【效果图-彩色】", BilateralFilter_c_out);key = waitKey(5);if(key == 27)//按下Esc键保存图像 {++imageNumber;std::stringstream ss;ss << "D:/Pictures/" << "Image" << imageNumber << ".jpg";imwrite(ss.str(), BilateralFilter_c_out); }}mContext.StopGeneratingAll();//停止产生数据 mContext.Shutdown(); return 0; } //——————————-【CheckOpenNIError( )函数】——————————–//检测错误并返回错误 //———————————————————————————————-void CheckOpenNIError(XnStatus eResult,string sStatus){ if(eResult != XN_STATUS_OK)cout << sStatus << "Error: " << xnGetStatusString(eResult) << endl;}

,人要有梦想,有了梦想才会努力奋斗,

Kinect彩色相机标定(一):彩色图像的采集

相关文章:

你感兴趣的文章:

标签云: