2

Я хотел исправить пару стереоизображений, исходящую из двух разных модальностей (визуальных и термических). Я откалиброван обе камеры с помощьюУстранение изображений разных размеров

[cameraParams,imagesUsed,estimationErrors] = estimateCameraParameters(imagePoints,worldPoints); 

дает мне объект stereoParameter, поскольку imagePoints содержит соответствующие пункты в шахматном порядке для обоих методов.

Чтобы исправить, я использовал следующий вызов:

[J1,J2] = rectifyStereoImages(I1,I2, cameraParamsStereo); 

, где I1 представляет собой визуальный образ и I2 тепловой один. К сожалению, это дает мне ошибку:

Error using rectifyStereoImages>parseInputs (line 106) Inputs must be of the same size and data types.

Error in rectifyStereoImages (line 96) [I1, I2, interp, outputView, fillValues] = parseInputs(...

Решения обоих изображений совершенно разные (2048x1088 для визуального, 384x288 для тепловых). Однако, с моей стороны, исправление в принципе должно по-прежнему работать, поскольку это делается аналогично в бумаге this. Честно говоря, однако, я не знаю, как ...

Вопрос: Есть ли способ в MATLAB, чтобы исправить изображения различных размеров? Если нет, существует ли алгоритм, который может быть легко реализован?

+0

Вы пытались сделать свой тепловой образ того же размера, что и оптический? добавьте пустую строку и столбцы вправо и снизу. – gregswiss

+0

@gregswiss: С пустым, я полагаю, вы имеете в виду нулевые значения. Я попробовал это сейчас, но это дает мне еще одну ошибку: «Индекс превышает размеры матрицы» в «Ошибка в видении. Внутренняя.калибровка. КамерыПараметрыImpl/getValidBounds (строка 860)« – user1809923

ответ

0

К сожалению, функция rectifyStereoImages требует, чтобы два изображения имели одинаковый размер. Это ограничение реализации, а не алгоритм.

Одна вещь, которую вы можете сделать, это undistort изображений с помощью функции undistortImage, найти совпадающие точки (например, с помощью matchFeatures), а затем использовать функцию triangulate, чтобы получить редкую реконструкцию 3-D.

Вы также можете попробовать сделать два изображения одинакового размера, заполнив меньшее изображение нулями. Перед калибровкой вам нужно будет поместить калибровочные изображения, чтобы все было согласовано.

+0

извините за мою позднюю реакцию. Я действительно хочу исправить изображения, поэтому ваш первый способ не работает, к сожалению. Что касается вашего второго пути, я смущен: если я просто поместил изображения с нулями справа и внизу, то угловые точки для шахматных досок не изменятся - так что оценкаCameraParameters (imagePoints, worldPoints) должна дать мне те же результаты, что и до заполнения? – user1809923

+0

Это мысль ... Попробуй. – Dima

+0

Я сделал. Я получаю ту же ошибку, что и раньше, изложенную в моем комментарии с 16 сентября выше. Угловые точки дополненного изображения не изменяются и не оцениваются. Параметры камеры (точки изображения, мировые точки) не получают никакой информации о том, что изображения были изменены (дополнены). Даже если я использую приложение стереокалибровки, откалибровать (теперь это работает с проложенными изображениями), а затем нажмите «Показать выпрямленный» в примере, я получаю ту же ошибку. – user1809923

 Смежные вопросы

  • Нет связанных вопросов^_^