Я пытаюсь преобразовать float
изображение, полученное с имитируемой глубины камеры, в CV_16UC1
. Камера публикует глубину в формате CV_32FC1
. Я пробовал много способов, но результат не был разумным.
cv::Mat depth_cv(512, 512, CV_32FC1, depth);
cv::Mat depth_converted;
depth_cv.convertTo(depth_converted,CV_16UC1);
Результат - черное изображение. Если я использую масштабный коэффициент, изображение будет белым.
Я также пытался сделать это так:
float depthValueF [512*512];
for (int i=0;i<resolution[1];i++){ // go through the rows (y)
for (int j=0;j<resolution[0];j++){ // go through the columns (x)
depthValueOfPixel=depth[i*resolution[0]+j]; // this is location j/i, i.e. x/y
depthValueF[i*resolution[0]+j] = (depthValueOfPixel) * (65535.0f);
}
}
Не удалось, либо.