Opencv 数据类型<;cv::详细信息::德里夫_类型>;::它的用途是什么

Opencv 数据类型<;cv::详细信息::德里夫_类型>;::它的用途是什么,opencv,Opencv,我想知道为什么在opencv中的lucas kanade跟踪器中使用这一行: DataType::depth 有人能给我解释一下吗?在OpenCV中,Mat的深度指的是Mat的数据缓冲区中包含的数据类型。它们由对应于给定数据类型的整数值表示。这些整数通常由适当的宏定义进行抽象(例如,uchar数据由宏CV_8U表示) cv::DataType是一个type traits类,它提供了一种获取相应整数值的方法,而无需记忆哪个宏表示哪个数据类型。很少有情况下用户代码需要使用DataType::dep

我想知道为什么在opencv中的lucas kanade跟踪器中使用这一行:

DataType::depth


有人能给我解释一下吗?

在OpenCV中,
Mat
的深度指的是
Mat
的数据缓冲区中包含的数据类型。它们由对应于给定数据类型的整数值表示。这些整数通常由适当的宏定义进行抽象(例如,
uchar
数据由宏
CV_8U
表示)

cv::DataType
是一个type traits类,它提供了一种获取相应整数值的方法,而无需记忆哪个宏表示哪个数据类型。很少有情况下用户代码需要使用
DataType::depth
。更常见的是
DataType::type

一个简单的示例显示了
DataType::depth
的一种可能用法:

cv::Mat uchar_data = cv::Mat::ones(3, 3, CV_8UC1);
cv::Mat float_data;
uchar_data.convertTo(float_data, cv::DataType<float>::depth);
                              // ^^ This could equivalently be replaced
                              //    by CV_32F macro
float_data.at<float>(0,1) += 0.5f;
std::cout << float_data << std::endl;
cv::Mat uchar_data=cv::Mat::ones(3,3,cv_8UC1);
cv::Mat float_数据;
convertTo(float_数据,cv::DataType::depth);
//^^这可以等效地替换
//通过CV_32F宏
(0,1)+=0.5f时的浮点数;
标准::cout