OpenCV中Mat的列向量归一化

http://blog.csdn.net/shaoxiaohu1/article/details/8287528

2012-12-12 17:32 4907人阅读 评论(2) 收藏 举报
 分类:
图像与OpenCV(15)  VC++(13) 

版权声明:本文为shaoxiaohu原创文章,欢迎转载,请注明出处,谢谢。

OpenCV 中虽然有normalize这个函数,但是却没有Matlab中normc这样只对Matlab中各列向量的归一化函数。好在我们可以多写几段代码来实现这种功能。

代码如下:

  1. double a[6] = {1, 2, 3, 4, 5, 6};
  2. Mat aa(2, 3, CV_64F, a);
  3. Mat temp1, temp2, temp3;
  4. pow(aa, 2, temp1);
  5. reduce(temp1, temp2, 0, CV_REDUCE_SUM); // calculate sum of each col
  6. sqrt(temp2, temp2);
  7. repeat(temp2, aa.rows, 1, temp3);
  8. divide(aa, temp3, aa);

其中 reduce函数是将计算各列向量的元素之和,相当于Matlab中的sum;repeat 函数是将temp2扩展为与aa相同大小的矩阵,相当于Matlab中的repmat。

实现各行向量的归一化,是同样的道理。

PS: OpenCV函数中,声明 src 与 dst 的变量要尽可能地不同,除了那些进行点计算的函数(如 add, divide,normalize等,这是我暂时得到的结论),在其它函数中如果src与dst变量名相同,得到的结果很有可能是错误的

OpenCV还有很多不太清楚的地方,欢迎各位的指点和讨论。

OpenCV中Mat的列向量归一化的更多相关文章

  1. Opencv中Mat矩阵相乘——点乘、dot、mul运算详解

    Opencv中Mat矩阵相乘——点乘.dot.mul运算详解 2016年09月02日 00:00:36 -牧野- 阅读数:59593 标签: Opencv矩阵相乘点乘dotmul 更多 个人分类: O ...

  2. opencv中mat类介绍

    The class Mat represents an n-dimensional dense numerical single-channel or multi-channel array. It ...

  3. OpenCV中Mat操作clone() 与copyto()的区别

    OpenCV中Mat操作clone() 与copyto()的区别 // Mat is basically a class with two data parts: the matrix header ...

  4. OpenCV中Mat的属性

    OpenCV中Mat的属性 最近在做一OpenCV的图像轮廓检验,但当用到霍夫变换时才发现对Mat的属性了解不足.Mat在OpenCV中的地位是及其重要的,因此有必要做一个总结. 大体上来说,Mat是 ...

  5. OpenCV中Mat的基本用法:创建、复制

    OpenCV中Mat的基本用法:创建.复制 一.Mat类的创建: 1.方法一: 通过读入一张图像,直接将其转换成Mat对象. Mat image = imread("test.jpg&quo ...

  6. opencv中Mat与IplImage,CVMat类型之间转换

    opencv中对图像的处理是最基本的操作,一般的图像类型为IplImage类型,但是当我们对图像进行处理的时候,多数都是对像素矩阵进行处理,所以这三个类型之间的转换会对我们的工作带来便利. Mat类型 ...

  7. opencv中Mat类型数据操作与遍历

    Mat作为opencv中一种数据类型常常用来存储图像,相对与以前的IplImgae类型来说,Mat类型省去了人工的对内存的分配与释放,转而自动分配释放.Mat Class主要包括两部个数据部分:一个是 ...

  8. OpenCV中Mat总结

    一.数字图像存储概述 数字图像存储时,我们存储的是图像每个像素点的数值,对应的是一个数字矩阵. 二.Mat的存储 1.OpenCV1基于C接口定义的图像存储格式IplImage*,直接暴露内存,如果忘 ...

  9. OpenCV中Mat的使用

    一.数字图像存储概述 数字图像存储时,我们存储的是图像每个像素点的数值,对应的是一个数字矩阵. 二.Mat的存储 1.OpenCV1基于C接口定义的图像存储格式IplImage*,直接暴露内存,如果忘 ...

随机推荐

  1. css3学习01

    1.圆角边框(div的一个属性:border-radius) <!DOCTYPE html> <html> <head> <style> div { t ...

  2. Android KeyCode

    KEYCODE_UNKNOWN=0; KEYCODE_SOFT_LEFT=1; KEYCODE_SOFT_RIGHT=2; KEYCODE_HOME=3; KEYCODE_BACK=4; KEYCOD ...

  3. HTML 标记

  4. 手机浏览器无法获取COOKIE的原因

    手机浏览器上无法使用cookie,肯能是 1. 浏览器禁用 COOKIE ,这个简单开启即可. 2. 可能是手机所在时区有问题,将COOKIE有效期设置更长时间测试下,在更改时区

  5. 《Windows编程循序渐进》——MFC封装机制详解

    单文档

  6. struts2防止重复提交的标签

    struts2 token 使用说明 --------------------------------------------------------------------------------- ...

  7. button,input type=button按钮在IE和w3c,firefox浏览器区别

    在项目中遇到一个问题,是关于点击button按钮会自动刷新的问题.查阅了资料,做以下的整理: button,input type=button按钮在IE和w3c,firefox浏览器区别如下:当在IE ...

  8. POJ 2240 Arbitrage(SPFA+邻接矩阵)

    ( ̄▽ ̄)" #include<iostream> #include<cstdio> #include<cmath> #include<algori ...

  9. Excel教程(14) - 文本和数据函数

    ASC 用途:将字符串中的全角(双字节)英文字母更改为半角 (单字节)字符.   语法:ASC(text) 参数:Text 为文本或包含文本的单元格引用.如果文本 中不包含任何全角英文字母,则文本不会 ...

  10. Vultr优惠码20美元享受20GB SSD和2T流量

    美国vps主机商vultr最新优惠码:20FOR30,只限新注册用户,点击注册链接,进入后台Billing,找到Gift code,输入20FOR30,点击apply,就能免费获得20美元的账户余额. ...