Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenCV转换为较小的数据类型:Max还是truncate/overflow?_Opencv_Type Conversion - Fatal编程技术网

OpenCV转换为较小的数据类型:Max还是truncate/overflow?

OpenCV转换为较小的数据类型:Max还是truncate/overflow?,opencv,type-conversion,Opencv,Type Conversion,我需要通过一个带通滤波器为一个项目,我的工作视频缓冲区。带通滤波器包括FFT和IFFT,以及通带外频率的平坦化。为了实现这一点,我需要比标准uchar类型有更多的空间来存储值,因此我暂时将视频帧转换为CV_64F,并计划将其转换回CV_8UC3。我的问题是: 将cv::Mat数据从大型数据类型转换为小型数据类型时,OpenCV的行为是什么?更具体地说,如果在cv::Mat对象中,cv_64F数据的值大于cv_8U中单个数据点的最大可能值,OpenCV是否将目标数据设置为该数据类型的最大可能值,或

我需要通过一个带通滤波器为一个项目,我的工作视频缓冲区。带通滤波器包括FFT和IFFT,以及通带外频率的平坦化。为了实现这一点,我需要比标准uchar类型有更多的空间来存储值,因此我暂时将视频帧转换为CV_64F,并计划将其转换回CV_8UC3。我的问题是:


将cv::Mat数据从大型数据类型转换为小型数据类型时,OpenCV的行为是什么?更具体地说,如果在cv::Mat对象中,cv_64F数据的值大于cv_8U中单个数据点的最大可能值,OpenCV是否将目标数据设置为该数据类型的最大可能值,或者我们有溢出或截断问题吗?

刚刚编写了一个简单的程序来了解它是如何工作的:

#包括
#包括
使用名称空间std;
int main(){
cv::Mat img1(cv::尺寸(2,2),cv_64F);
img1=cv::标量(5000000);
cv::Mat img2;
img1.转换器(img2,CV_8U);
对于(int i=0;i