DataType<cv::d etail::d eriv_type>::d epth 它用于什么



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

DataType<cv::detail::deriv_type>::depth

有人能给我解释一下吗?

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

cv::DataType是一个类型特征类,它提供了一种获得相应整数值的方法,而不必记住哪个宏意味着哪个数据类型。很少有用户代码需要使用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;

最新更新