Я работаю над рабочим процессом PIV и в настоящее время предварительно обрабатываю изображения. Мне нужно избавиться от искажения перспективы на изображениях. У меня есть «набор инструментов для обработки изображений» и «калибратор камеры». Я уже избавился от дисторсии объектива с помощью "undistortImage();" и объект cameraParams, который выводится с помощью шаблона шахматной доски.
Первый вопрос: можно ли использовать объект cameraParams для искажения изображения в перспективе, чтобы моя шахматная доска была выпрямлена на изображении?
Второй вопрос: поскольку я не мог использовать объект cameraParams, я попытался использовать функции преобразования вручную. Я попытался использовать пары контрольных точек (с инструментом cpselection, исходное изображение и сгенерированное изображение шахматной доски) и fitgeotrans (movingPoints, fixedPoints, 'projective'); функция для получения моего объекта tform. Однако я всегда получаю сообщение об ошибке:
Error using fitgeotrans>findProjectiveTransform (line 189)
At least 4 non-collinear points needed to infer projective transform.
Error in fitgeotrans (line 102)
tform = findProjectiveTransform(movingPoints,fixedPoints);
Я пробовал много разных пар контрольных точек (4 пары и более). Но я все еще получаю эту ошибку. Я считаю, что я должен упустить что-то здесь.
Любая помощь приветствуется, спасибо.
Стефан