保存
MyData.h_people_depth = cv::cuda::GpuMat(PROJECTION_HEI, PROJECTION_WID, CV_32FC1, cv::Scalar(0, 0, 0));
cv::Mat people_depth;
MyData.h_people_depth.download(people_depth);
cv::Mat people_depth_save(people_depth.rows, people_depth.cols, CV_8UC4, people_depth.data);
cv::normalize(people_depth, people_depth, 0, 1.0, cv::NORM_MINMAX);
cv::imshow("people_depth", people_depth);
cv::imshow("people_depth_save", people_depth_save);
cv::imwrite("../res/people_depth.png", people_depth_save);
读取
Mat depth = imread("../res/people_depth.png", IMREAD_UNCHANGED);
for(int i=0;i<depth.rows;i++){
for(int j=0;j<depth.cols;j++){
if(depth.at<float>(i,j) > 0)
printf("%f \n",depth.at<float>(i,j));
Point2d p1 = pixel2cam(Point2d(i,j),K1);
}
}
OpenCV图像处理与保存

本文详细介绍使用OpenCV进行图像处理的过程,包括从GPU内存中下载图像数据,将图像转换为可显示和保存的格式,以及如何读取并处理保存后的图像文件。通过具体的代码示例,展示了图像归一化、显示、保存以及读取和像素值的打印方法。
1万+





