OpenCV: convertTo возвращает белое изображение (иногда)

Я относительно новичок в OpenCV, и я наткнулся на проблему. У меня есть входное изображение и вы хотите преобразовать его из типа CV_8U в CV_32F.

С некоторыми изображениями он отлично работает с помощью input.convertTo(output, CV_32F), но с выходом других изображений будет отображаться только полностью белое изображение.

Количество каналов, dims равно или глубина. В чем проблема?

Ответ 1

Я считаю, что результат нормальный.

Когда вы используете convertTo от CV_8U1 до CV32F1, значение пикселя, например 255, становится 255.0. Но когда вы попробуете "imshow" результирующее изображение, команда ожидает, что все значения пикселей будут находиться между 0.0 и 1.0. поэтому без масштабирования изображения изображение будет выглядеть белым.

Итак, это будет делать трюк, как отметил zzz (спасибо).

input.convertTo(output, CV_32F, 1.0/255.0)