使用opencv将16位深度图转灰度图
·
使用opencv将16位深度图转灰度图,默认深度图每个像素以uint16_t来保存。
#include <string>
#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
void depth_img_save(uint16_t* raw_data)
{
int rows = 480;
int cols = 640;
Mat depth_img = Mat(rows,cols,CV_8UC1);
int max_depth = 10000; //默认最大测距为10000mm
for (int i = 0; i < rows; i++) //480 默认先行后列保存
{
for (int j = 0; j < cols; j++) //640
{
//每个距离归一化后*255,即映射到0-255范围
uchar pixel = raw_data[i*cols+j]*255/max_depth;
depth_img.at<uchar>(i,j) = pixel;
}
}
imshow("depth_img",depth_img);
imwrite("depth_img.jpg",depth_img);
waitKey();
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)