函数原型
源码中给出的原型,所在文件:modules/core/include/opencv2/core/core.hpp.
函数的定义所在文件:modules/core/src/convert.cpp.
使用方法
- 方法1:
cv::Mat img = cv::imread("D:/test.png",0);
cv::Mat_<float> dest(img.rows,img.cols);
cv::normalize(img, dest,1,cv::NORM_L2);
cout << dest << endl;
- 方法2:
cv::Mat img = cv::imread("D:/test.png",1);
cv::Mat_<cv::Vec3f> dest(img.rows,img.cols);
cv::normalize(img, dest,1,cv::NORM_L2);
cout << dest << endl;
- 方法3:
cv::Mat img = cv::imread("D:/test.png",1);
cv::Mat mask(img.rows,img.cols,CV_8U,cv::Scalar(1));
cv::Mat_<cv::Vec3f> dest(img.rows,img.cols);
cv::normalize(img, dest,1,0,cv::NORM_L2,-1,mask);
cout << dest << endl;
- norm_type可取的值为:
这里写代码片
- CV_MINMAX:———-会执行一下语句:
minMaxLoc( _src, &smin, &smax, 0, 0, mask );//得到矩阵中元素的最小值和最大值
scale = (dmax - dmin)*(smax - smin > DBL_EPSILON ? 1./(smax - smin) : 0);
shift = dmin - smin*scale;
//。。。中间代码省略了
if( !mask.data )
src.convertTo( dst, rtype, scale, shift );
else
{
Mat temp;
src.convertTo( temp, rtype, scale, shift );
temp.copyTo( dst, mask );
}//图像缩放平移
- CV_L2或CV_L1或CV_C——– 会执行一下代码:
scale = norm( src, norm_type, mask ); scale = scale > DBL_EPSILON ? a/scale : 0.; shift = 0;
不会进行平移操作。
(转载请注明作者和出处:http://blog.csdn.net/CHIERYU 未经允许请勿用于商业用途)