1、CornerEigenValsAndVecs函数
计算图像块的特征值和特征向量,用于角点检测
2、
CornerEigenValsAndVecs函数调用形式
void cvCornerEigenValsAndVecs( const CvArr* image, CvArr* eigenvv,
int block_size, int aperture_size=3 );
image
输入图像.
eigenvv
保存结果的数组。必须比输入图像宽 6 倍。
block_size
邻域大小 (见讨论).
aperture_size
Sobel 算子的核尺寸(见 cvSobel).
对每个象素,函数 cvCornerEigenValsAndVecs 考虑 block_size × block_size 大小的邻域 S(p),然后在邻域上计算图像差分的相关矩阵:
然后它计算矩阵的特征值和特征向量,并且按如下方式(λ1, λ2, x1, y1, x2, y2)存储这些值到输出图像中,其中
λ1, λ2 - M 的特征值,没有排序
(x1, y1) - 特征向量,对 λ1
(x2, y2) - 特征向量,对 λ2
opencv 代码:
#include
#include
#include
#include
using namespace cv;
using namespace std;
int main()
{
Mat src;
src= imread("D:6.jpg");
Mat dst(src.size(),CV_32FC(6));
cvtColor(src, src, CV_RGB2GRAY);
cornerEigenValsAndVecs(src, dst, 3, 3, BORDER_DEFAULT);
cout << dst.at(100, 100)[1] << endl;
return 0;
}