opencv2.4.9中normalize的使用

函数原型

源码中给出的原型,所在文件: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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值