OpenCV:convertTo返回白色图像(有时)

moa*_*tta 13 c++ opencv

我对OpenCV比较陌生,而且我遇到了问题.我有一个输入图像,想要将它从Type CV_8U转换为CV_32F.

对于一些图像,它工作得很好,input.convertTo(output, CV_32F)但与其他图像输出只会给出一个完整的白色图像.

通道数量,调光量等于深度.问题是什么?

Tae*_*hin 20

我相信结果是正常的.

当使用convertTo从CV_8U1到CV32F1,像素值,例如,255变为255.0.但是,当您尝试"imshow"生成的图像时,该命令要求所有像素值介于0.0和1.0之间.这就是为什么在没有重新缩放图像的情况下,图像看起来都是白色的.

所以这将成为zzz指出的技巧(谢谢).

input.convertTo(output, CV_32F, 1.0/255.0)
Run Code Online (Sandbox Code Playgroud)

  • 因此,使用convertTo的第三个参数作为比例因子.在你的情况下,它将是1.0/255.0.这样,您的图像在转换时会缩放.请参阅以下文档:http://docs.opencv.org/modules/core/doc/basic_structures.html?highlight = contvertto #void%20Mat::conversionTo%28OutputArray%20m,%20int%20rtype,%20double%20alpha, %20double%20beta%29%20const (2认同)