opencv2.4.9中normalize的使用

来源:互联网 发布:mac软件哪个网站好 编辑:程序博客网 时间:2024/05/20 18:19

函数原型

源码中给出的原型,所在文件: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可取的值为:
这里写代码片
  1. 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 );        }//图像缩放平移
  1. 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 未经允许请勿用于商业用途

0 0