What are the differences between CV_8U and CV_32F and what should I worry about when converting between them?

前端 未结 2 2102
天涯浪人
天涯浪人 2020-12-12 17:09

I have some code that is acting up and I suspect it\'s because I\'m operating on the wrong types of data or converting between them poorly.

It is mixing cv::

2条回答
  •  北荒
    北荒 (楼主)
    2020-12-12 17:50

    CV_8U is unsigned 8bit/pixel - ie a pixel can have values 0-255, this is the normal range for most image and video formats.

    CV_32F is float - the pixel can have any value between 0-1.0, this is useful for some sets of calculations on data - but it has to be converted into 8bits to save or display by multiplying each pixel by 255.

    CV_32S is a signed 32bit integer value for each pixel - again useful of you are doing integer maths on the pixels, but again needs converting into 8bits to save or display. This is trickier since you need to decide how to convert the much larger range of possible values (+/- 2billion!) into 0-255

提交回复
热议问题