0

Мне нужна ваша помощь. Я использовал стерео калибровку, выпрямление, используя мою стереопару. У меня есть изображение несоответствия, которое вполне разумно. Проблема, с которой я сталкиваюсь, связана с cvReprojectImageTo3D. Я использовал stereobM. И исправлены правильно. Декларация следующимПроблема с cvReprojectImageTo3D и CV_32FC3

CvMat* disp = cvCreateMat(imageSize.height, imageSize.width, CV_16S); 
CvMat* vdisp = cvCreateMat(imageSize.height,imageSize.width, CV_8U); 
CvMat* Image3D = cvCreateMat(imageSize.height, imageSize.width, CV_32FC3); 

Индик.точки является несоответствие изображения, полученные для стерео pair.And, когда я запускаю команду ShowImage из Image3D я получить красочные подразделения. Я сомневаюсь, почему это так. Я придаю связь моего результата
фото приведено ниже

https://plus.google.com/photos/110965556771924534380/albums/5745356738809417329/5748680803335389906

Другое сомнение у меня есть, как хранится эта image3D. Имеет ли CV_32FC3, что первый канал дает значение x второй, дает y, а третий дает z или что-то вроде или есть другое представление.?

ответ

1

Да, «Вывести 3-канальное изображение с плавающей точкой того же размера, что и различие. Каждый элемент _3dImage (x, y) содержит 3D-координаты точки (x, y), вычисленной из карты несоответствия».

Так это плавучий указывая х, у, г в каждом пикселе координат

см http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html

+0

Существует также другой вопрос, основанный на фотографии, который я приложил ... Не могли бы вы объяснить мне, почему изображение состоит из 4-х цветов – nbsrujan

+0

Что мы можем извлечь из этих цветов? – nbsrujan

+1

@nbsrujan - вы не должны отображать трехмерное изображение, это не изображение. Он просто использует формат изображения для удобства повторного использования всей обработки памяти, кода ввода-вывода и т.д. –

0

пытались ли вы что-то вроде

cvSave ("depthmeasure.txt", Image3D);