您的位置:首页 > 运维架构

opencv2.4.9中normalize的使用

2015-11-27 21:26 525 查看

函数原型

源码中给出的原型,所在文件: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 未经允许请勿用于商业用途
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  normalize 归一化 opencv