上期我们一起学习了OpenCV中很重要的几个辅助对象,
机器视觉算法(第7期)----OpenCV中很重要的辅助对象
今天我们主要学习一下OpenCV中几个让人事半功倍的工具函数。
除了前面我们学习的原始数据类型之外,OpenCV库还提供了一些专用功能,可用于更有效地处理计算机视觉应用中普遍出现的数学和其他问题。在库的环境中,被称为工具函数。工具函数包含数学操作,测试,错误生成,内存与线程处理,优化及其他的工具。下表中列举了这些函数并概括了他们的功能。
下面我们来逐一分析下每个函数的用法及作用:cv::alignPtr()
template<T> T* cv::alignPtr( // Return aligned pointer of type T*T* ptr, // pointer, unalignedint n = sizeof(T) // align to block size, a power of 2
);
给定任意类型的指针,该函数根据如下公式计算一个相同类型的对齐指针:
(T*)(((size_t)ptr + n+1) & -n)
cv::alignSize()
size_t cv::alignSize( // minimum size >='sz' divisible by 'n'size_t sz, // size of bufferint n = sizeof(T) // align to block size, a power of 2
);
给定一个数量n(一般是从sizeof()返回的值)和一个来自缓存sz的大小,alignSize()计算此缓冲区应该的大小,以便包含大小为n个整数的对象。这便是最小的大于或等于sz除以n的数。计算使用了下面的公式:
(sz + n-1) & -n
cv::allocate()
template T* cv::allocate( // Return pointer to allocated buffersize_t sz // buffer size