Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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特征描述符规范化为整数比例?_Opencv_Normalization_Feature Detection_Feature Descriptor - Fatal编程技术网

如何将OpenCV特征描述符规范化为整数比例?

如何将OpenCV特征描述符规范化为整数比例?,opencv,normalization,feature-detection,feature-descriptor,Opencv,Normalization,Feature Detection,Feature Descriptor,OpenCV SURF实现为图像中找到的每个特征点返回一个64/128 32位浮点值(描述符)序列。有没有一种方法可以规范化这个浮点值,并将它们转换为整数刻度(例如,[0255])?。这将节省重要的空间(每个值1或2个字节,而不是4个字节)。此外,转换应确保描述符对于其他用途(如集群)仍然有意义 谢谢 除了SURF,还有其他功能提取器。简短提取器每个描述符仅使用32字节。它使用32个无符号字节[0-255]作为元素。您可以这样创建一个:Ptr ptrExtractor=DescriptorExt

OpenCV SURF实现为图像中找到的每个特征点返回一个64/128 32位浮点值(描述符)序列。有没有一种方法可以规范化这个浮点值,并将它们转换为整数刻度(例如,[0255])?。这将节省重要的空间(每个值1或2个字节,而不是4个字节)。此外,转换应确保描述符对于其他用途(如集群)仍然有意义


谢谢

除了SURF,还有其他功能提取器。简短提取器每个描述符仅使用32字节。它使用32个无符号字节[0-255]作为元素。您可以这样创建一个:
Ptr ptrExtractor=DescriptorExtractor::create(“简短”)

请注意,OpenCV中的许多图像处理例程需要或假设数据存储为浮点数

您可以将浮点特征视为普通图像(Mat或cvmat),然后使用cv::normalize()。另一个选项是使用cv::norm()查找描述符值的范围,然后使用cv::convertTo()转换为cv_8U。请查阅OpenCV文档以了解这些函数。

cv::SurfFeatureDetector返回的描述符已经规范化。您可以通过获取返回的cv::Mat的L2范数或参考论文来验证这一点