OpenCV学习笔记(三)——Mat,图像的新容器

自从版本2.0,OpenCV采用了新的数据结构,用Mat类结构取代了之前用extended C写的cvMat和lplImage,更加好用啦,最大的好处就是更加方便的进行内存管理,对写更大的程序是很好的消息。

需要注意的几点:

1. Mat的拷贝只是复制了Mat的信息头,数据的指针也指向了被拷贝的数据地址,而没有真正新建一块内存来存放新的矩阵内容。这样带来的一个问题就是对其中一个Mat的数据操作就会对其他指向同一块数据的Mat产生灾难性的影响。

2.建立多维数组的格式是这样的
[cpp] view plaincopy
  1. int sz[3] = {2, 2, 2};  
  2. Mat L(3, sz, CV_8UC(1), Scalar::all(0));  

3.传统的lplImage格式也可直接转换为Mat格式
[cpp] view plaincopy
  1. IplImage* img = cvLoadImage("greatwave.png", 1);  
  2. Mat mtx(img); // convert IplImage* -> Mat  

如果想将新版本的Mat格式转换为老版本,则需要如下调用:

[cpp] view plaincopy
  1. Mat I;  
  2. IplImage* pI = &I.operator IplImage();  
  3. CvMat* mI = &I.operator CvMat();  

不过更安全的调用格式为:
[cpp] view plaincopy
  1. Ptr<IplImage> piI = &I.operator IplImage();  

4.Mat结构更加友好,很多操作更接近matlab的风格5.也有Point2f,Point3f,vector等数据结构可以使用

6.RNG类可以产生随机数

7.实现颜色通道的分离使用函数split

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255504.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jq实现事件委托

事件委托首 页产品展示公司简介关于我们联系我们转载于:https://www.cnblogs.com/haley168/p/eventTarget.html

【python数字信号处理】——scipy库设计滤波器(IIR为例)、绘制滤波器频谱响应、IIR滤波器滤波、读写wav音频文件

目录 一、参考文献 1、scipy接口 2、scipy库介绍+IIR滤波器设计(含GUI)+绘制频谱响应

关于SQL查询效率,100w数据,查询只要1秒

原文:关于SQL查询效率&#xff0c;100w数据&#xff0c;查询只要1秒1.关于SQL查询效率&#xff0c;100w数据&#xff0c;查询只要1秒&#xff0c;与您分享:机器情况p4: 2.4内存: 1 Gos: windows 2003数据库: ms sql server 2000目的: 查询性能测试,比较两种查询的性能SQL查询效…

OpenCV学习笔记(五十四)——概述FaceRecognizer人脸识别类contrib

在最新版的2.4.2中&#xff0c;文档的更新也是一大亮点&#xff0c;refrence manual扩充了200多页的内容&#xff0c;添加了contrib部分的文档。contrib就是指OpenCV中新添加的模块&#xff0c;但又不是很稳定&#xff0c;可以认为是一个雏形的部分。这次结合refman的阅读&…

【调试】Linux下超强内存检测工具Valgrind

【调试】Linux下超强内存检测工具Valgrind 内容简介 Valgrind是什么&#xff1f;Valgrind的使用Valgrind详细教程1. Valgrind是什么&#xff1f; Valgrind是一套Linux下&#xff0c;开放源代码&#xff08;GPLV2&#xff09;的仿真调试工具的集合。Valgrind由内核&#xff08;c…

【python学习】——读取csv文件

file_name rD:\ParttimeJobs\MinistConfiguration\datas\mnist_train.csv # 数据集为42000张带标签的28x28手写数字图像y []x []y_t []x_t []with open(file_name, r) as f:reader csv.reader(f)header_row next(reader)# print(header_row)for row in reader:if np.ra…

机器学习实战(python)-Ch02KNN-Notes

Chapter2 KNN 1.numpy.tile函数 格式&#xff1a;tile&#xff08;A,reps&#xff09; * A&#xff1a;array_like * 输入的array * reps&#xff1a;array_like * A沿各个维度重复的次数 举例&#xff1a;A[1,2] 1. tile(A,2) 结果&#xff1a;[1,2,1,2] 2. tile(A,(2,3)) 结果…

猜1-10的数字python脚本

#!/usr/bin/python#coding:utf-8import randomnumrandom.randint(1,10)while True:caiint(raw_input(请输入随机数字:))if cai num:print 猜对了exit()elif cai > num:print 猜大了else:print 猜小了非交互式的cp脚本#!/usr/bin/python#coding:utf-8import sysfile1sys.arg…

惯量匹配和最佳传动比

惯量是刚体绕轴转动惯性的度量&#xff0c;转动惯量是表征刚体转动惯性大小的物理量。它是伺服选型的重要标准&#xff0c;如果惯量匹配不好&#xff0c;会导致电机运行不稳定。如小惯量电机制动性能好&#xff0c;运行反应速度快&#xff0c;适用于轻负载、高速定位的环境;而中…

【pyqt5学习】——滑动条的使用slider

1、获取滑动条当前值: 滑动条名称.value() self.threshold1 self.horizontalSlider.value() self.threahold2 self.horizontalSlider_2.value() 2、滑动条值改变信号绑定槽函数 滑动条名称.valueChanged.connect(槽函数&#xff09; # 滑条值变化 self.horizontalSlider.valu…

hibernate多对一单向外键

hibernate多对一单向外键&#xff1a; 描述&#xff1a; 转载于:https://www.cnblogs.com/blogofwyl/p/5402197.html

Spring在bean配置文件中定义电子邮件模板

在上一篇Spring电子邮件教程&#xff0c;硬编码的所有电子邮件属性和消息的方法体中的内容&#xff0c;这是不实际的&#xff0c;应予以避免。应该考虑在Spring bean 配置文件中定义电子邮件模板。1.Spring的邮件发件人Java类使用 Spring的MailSender接口发送电子邮件&#xff…

斐波那契数列规律的计算。

斐波那契数列就是某一个数&#xff0c;总是前两个数之和&#xff0c;比如0&#xff0c;1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;8。由于输出是一串数字&#xff0c;可以用列表的结构存储。开始时&#xff0c;列表中有两个值&#xff0c;即0&#xf…

【PyQt5学习】——颜色面板使用(QcolorDialog)

from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import * BB = QDialogButtonBox# 颜色窗口 class ColorDialog(QColorDialog):def __init__(self, parent=None):super(ColorDialog, self).__init__(parent)self.setOption(QColorDialog.ShowAlph…

PropertyPlaceholderConfigurer实现配置文件读取

PropertyPlaceholderConfigurer实现配置文件读取 PropertyPlaceholderConfigurer类的主要的用法是将BeanFactory里定义的内容放在一个.properties的文件中. PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现&#xff0c;也就是BeanFactoryPostProcessor接口的一个实…

算法练习5---快速排序Java版

基本思想&#xff1a;通过一趟排序将要排序的数据分割成独立的两部分&#xff0c;其中一部分的所有数据都比另外一部分的所有数据都要小&#xff0c;然后再按此方法对这两部分数据分别进行快速排序&#xff0c;整个排序过程可以递归进行&#xff0c;以此达到整个数据变成有序序…

OPENCV回调函数

OPENCV回调函数 回调函数 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针&#xff08;地址&#xff09;作为参数传递给另一个函数&#xff0c;当这个指针被用来调用其所指向的函数时&#xff0c;我们就说这是回调函数。回调函数不是由该函数的实现方法直接调用…

PostCSS自学笔记(二)【番外篇二】

图解PostCSS的插件执行顺序 文章其实是一系列的早就写完了. 才发现忘了发在SegmentFault上面, 最早发布于https://gitee.com/janking/Inf... 这次我继续研究PostCSS的插件的执行顺序。 之前有研究过做过假设&#xff0c;在插件列表中&#xff0c;PostCSS的插件执行顺序自上而下…

【Python学习】——实现文本的朗读(pyttsx3)

import pyttsx3engine = pyttsx3.init() engine.say(三角形)engine.runAndWait() 1、导入第三方库 import pyttsx32、创建朗读器 engine = pyttsx3.init() 3、输入需要朗读的文本 engine.say(三角形) 4、开始朗读并且发声(这一步不能少,不然没有声音) engine.runAndWait() 参…

linux命令详解——iostat

简介 iostat主要用于监控系统设备的IO负载情况&#xff0c;iostat首次运行时显示自系统启动开始的各项统计信息&#xff0c;之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。 安装 yum install -y sysstat 语法 i…