OpenCV中像素值的上下限是多少,我该如何获取它们?
我所能想到的唯一限制是CV_8U
类型Mat,其中通道像素值的下限为0,上限为255。其他Mat的这些值是什么?
比如CV_32F、CV_32S?
OpenCV中像素值的上下限是多少,我该如何获取它们?
我所能想到的唯一限制是CV_8U
类型Mat,其中通道像素值的下限为0,上限为255。其他Mat的这些值是什么?
比如CV_32F、CV_32S?
OpenCV等效的C / C ++数据类型:
CV_8U
-> unsigned char
(最小值=0,最大值=255)
CV_8S
-> char
(最小值=-128,最大值=127)
CV_16U
-> unsigned short
(最小值=0,最大值=65535)
CV_16S
-> short
(最小值=-32768,最大值=32767)
CV_32S
-> int
(最小值=-2147483648,最大值=2147483647)
CV_32F
-> float
CV_64F
-> double
有一点需要考虑的是,当使用imshow
或cvShowImage
显示CV_32F
或CV_64F
类型的图像时,OpenCV希望值在0.0和1.0之间进行归一化处理。否则,它会饱和像素值。
查看此教程以获取数据类型范围。
CV_32F 表示 32 位浮点数。CV_32S 表示 32 位有符号整数。我相信你可以猜出 CV_64F 代表什么。互联网上有很多关于不同数据类型可取范围的参考资料,例如 这里 是 32S。