找了N久,距离的计算。Oreilly的<Learning OpenCV>还是王道。 #include "stdafx.h" #include <cv.h> #include <highgui.h> float Array1[]={1,-1,2}; float Array2[]={2,6,2}; //uchar MaskArray[]={1,1,0}; int main() { CvMat *Mat1=cvCreateMat(1,3,CV_32FC1); CvMat *Mat2=cvCreateMat(1,3,CV_32FC1); cvSetData(Mat1,Array1,Mat1->step); cvSetData(Mat2,Array2,Mat2->step); printf("1-norm is : %.1f/n",cvNorm(Mat2,Mat1,CV_L1)); // printf("1-norm+mask is : %.1f/n",cvNorm(Mat2,NULL,CV_L1,Mat1)); printf("2-norm is : %.3e/n",cvNorm(Mat2,Mat1,CV_L2)); // printf("2-norm+mask is : %.3e/n",cvNorm(Mat2,NULL,CV_L2,Mat1)); printf("Infininte norm is : %.1f/n",cvNorm(Mat2,Mat1,CV_C)); // printf("Infininte norm+mask is : %.1f/n",cvNorm(Mat2,NULL,CV_C,Mat1)); printf("Relative 1-norm distance is : %.1f/n",cvNorm(Mat2,Mat1,CV_RELATIVE_L1,0)); printf("Relative 2-norm distance is : %.3f/n",cvNorm(Mat1,Mat2,CV_RELATIVE_L2)); printf("Relative infininte norm distance is : %.1f/n",cvNorm(Mat1,Mat2,CV_RELATIVE_C)); system("pause"); cvReleaseMat(&Mat1); cvReleaseMat(&Mat2); }