OpenCV学习笔记(四)——新版本的数据结构core

Opencv 相机内参标定及使用 一、功能描述 1.本文用于记录通过 Opencv 进行相机内参标定和对内参的使用来进行图像畸变矫正。 1)相机矩阵:包括焦距(fx,fy),光学中心(Cx,Cy),完全取决于相机本身,是相机的固有属性,只需要计算一次,可用矩阵表示如下:[fx, 0, Cx; 0, fy, cy; 0,0,1]; 2) 畸变系数:畸变数学模型的5个参数 D = (k1,k2, P1, P2, k3); 3)相机内参:相机矩阵和畸变系数统称为相机内参,在不考虑畸变的时候,... 阅读详情

2.0新版本对数据结构进行了大幅修改:

定义了DataType类

定义了Point_模板类,取代了之前版本的CvPoint、CvPoint2D32f

定义了Point3_模板类,取代了之前版本的CvPoint2D32f

定义了Size_模板类,取代了之前版本的CvSize和CvSize2D32f

定义了Rect_模板类,取代了之前版本的CvRect

RotatedRect模板类,

TermCriteria模板类,取代了之前的CvTermCriteria,这个类是作为迭代算法的终止条件的,这个类在参考手册里介绍的很简单,我查了些资料,这里介绍一下。该类变量需要3个参数,一个是类型,第二个参数为迭代的最大次数,最后一个是特定的阈值。类型有CV_TERMCRIT_ITER、CV_TERMCRIT_EPS、CV_TERMCRIT_ITER+CV_TERMCRIT_EPS,分别代表着迭代终止条件为达到最大迭代次数终止,迭代到阈值终止,或者两者都作为迭代终止条件。以上的宏对应的c++的版本分别为TermCriteria::COUNT、TermCriteria::EPS,这里的COUNT也可以写成MAX_ITER。

Matx模板类。Matx模板类是对Mat类的一个拓展,从Matx类有派生出Vec类,又Vec类又派生出Scalar_类,取代了CvScalar

定义了Range类指定了一个序列的一个连续的子序列

定义了Ptr类用来对老版本的数据结构进行指针操作,更安全有效,可以防止内存的不正常使用。

最最重要的定义了Mat类来表示矩阵,取代了之前的CvMat和lplImage。Mat结构支持的操作有:

构造析构函数Mat和~Mat

对=、MatExpr、( )、CvMat、IplImage进行了运算符重载

row、col函数

rowRange、colRange

类似matlab的运算操作diag、t、inv、mul、cross、dot、zeros、one、eye

复制转换变形clone、copyTo、convertTo、assignTo、setTo、reshape、create、addref

其中copyTo函数有个妙用,不但可以复制Mat,还可以通过mask提取出感兴趣的部分

数据的操作release、resize、reserve、push_back、pop_back、locateROI、adjustROI

Mat的信息total、isContinuous、elemSize、elemSize1、type、depth、channes、step1、size、empty

其中step1函数返回Mat结构每一行的字节数=列数*通道数,更方便用指针定位特定元素

定位ptr、at、begin、end

还做了几个扩展类Mat_、NAryMatlterator、SparseMat、SparseMat_取代了之前的CvSparseMat。这些类的操作运算与Mat大同小异,类声明参考core的具体头文件

当然,新版本对老版本的数据结构和函数依然支持。

新版本还在这些结构里支持dft、dct变换,我这里讲一下我的新发现PCA类、SVD类

PCA类有构造函数PCA,运算符重载(),project,backProject。SVD类有构造函数SVD,运算符重载(),compute,solveZ,backSubst

这里介绍几个我使用过的实用函数:

inRange函数可以检查Matsrc的内容是否在Matlower、Matupper之间,输出结果是一个uchar型矩阵,1表示在两者之间,否则为0,值得注意的是,Matlower,Matupper也可以用Scalar的格式

bitwise_xxx函数对两个矩阵进行位运算,结果保存在第三个矩阵当中

mixChannels函数可以实现矩阵的指定通道复制到新矩阵的指定通道

总之,新版本支持更多的数学运算,还支持一些画图操作

OpenCV从入门到放弃(三):Core组件细讲 Core组件细讲 阅读详情

相关推荐

opencv3学习笔记(三)——core组件之模块operations on array

1.引言operations on array:数组操作。从官网上及源码上我们可以看到该模块声明了5个类、94个函数、重载了6个函数、定义了9个枚举类型。 详细链接:官网详解2.类声明3 函数声明3.1 void cv::absdiff ()3.1.1 函数用途absdiff:absolute difference 该函数用于计算两个矩阵或一个矩阵与一个数的差的绝对值3.1.2 函数原型void

qq_29012777的博客 7327

OpenCV编程->cvCamShift函数

#define CV_INLINE inline /*********************************** CvTermCriteria *************************************/ #define CV_TERMCRIT_ITER 1 #define CV_TERMCRIT_NUMBER CV_TERMCRIT_ITER #define

Rana专栏 3286

OpenCv 丢失opencv_core2411.dll

把丢失文件copy到下面的路径并执行:regsvr32 C:\Windows\System32\opencv_core2411d.dll  丢失什么就去补什么然后注册下就行 摘抄了高手下面的解决方法,已经验证成功 1>opencv_test1.obj : error LNK2019: 无法解析的外部符号_cvReleaseImage,该符号在函数_main 中被引用 1>ope

songyimin1208的博客 1万+

TermCriteria

TermCriteria模板类,取代了之前的CvTermCriteria,这个类是作为迭代算法的终止条件的,这个类在参考手册里介绍的很简单,我查了些资料,这里介绍一下。该类变量需要3个参数,一个是类型,第二个参数为迭代的最大次数,最后一个是特定的阈值。类型有CV_TERMCRIT_ITER、CV_TERMCRIT_EPS、CV_TERMCRIT_ITER+CV_TERMCRIT_EPS,分别代表着

u010606097的专栏 5264

【OpenCV3编程入门学习笔记】——第1章 邂逅OpenCV

邂逅OpenCV 文章目录邂逅OpenCV前言1.1 OpenCV周边概念认知1.1.1 图像处理、计算机视觉与OpenCV1.1.2 OpenCV概述1.1.3 起源及发展1.1.4 应用概述1.2 OpenCV基本架构分析1.3 OpenCV3带来了什么1.4 OpenCV的下载、安装与配置1.5 快速上手OpenCV图像处理前期准备1.5.1 程序一 图像显示1.5.2 程序二 图像腐蚀1.5.3 程序三 图像模糊1.5.4 程序四 canny边缘检测1.6 OpenCV视频操作基础1.6.1 读取并

繁臻的小窝 1411

OpenCV开发笔记(七十六):相机标定(一):识别棋盘并绘制角点

知道图像畸变矫映射的原理之后,那么如何得到相机的内参是矫正的第一步,内参决定了内参矩阵(中心点、焦距等),用内参矩阵才能计算出投影矩阵,从而将原本畸变的图像矫正为平面投影图像。本篇描述了相机成形的原理,并绘制出识别的角点。

长沙红胖子 Qt・西安|省级科研团队从业背景,深耕双一流体系高精尖技术配套研发|剥离高精尖机理,沉淀高端特种行业领域 Qt 工程化落地经验|博文仅分享通用技术总结,输出公开普适工程思路。 1万+

OpenCV学习笔记——新版本的数据结构core

2.0新版本对数据结构进行了大幅修改: 定义了DataType类 定义了Point_模板类,取代了之前版本的CvPoint、CvPoint2D32f Point_类不用多言,里面两个成员变量x,y。Point_就是Point2i,也是Point,Point_就是Point2f,Point_就是Point2d。 Point3_类不太常用,跟Point_类差不太多,成员

u013488563的专栏 1109

Aras Innovator系统配置-01对象类(一)

对象类配置-对象类属性说明

企业信息化(PLM,ERP.MES) 2032

[OpenCV基础] 2.0新版本的core数据结构

原文转自:http://blog.youkuaiyun.com/yang_xian521/article/details/6905244

飞扬的青春的专栏 859

Zemax操作16--激光谐振腔(含晶体)

谐振腔(含晶体)

lzy750750的博客 8318

【Linux】Petalinux使用QSPI FLASH引导启动

1. 预分配Flash空间使用Flash引导Petalinux做的系统,也有进阶的做法。部分图片和经验来源于网络,若有侵权麻烦联系我删除,主要是做笔记的时候忘记写来源了,做完笔记很久才写博客。1. 预分配Flash空间根据生成的bit文件大小估算BOOT.BIN文件的大小,为Flash大概分配四个分区:boot、bootenv、kernel、bootscr,分别存放BOOT.BIN文件、u-boot的环境变量、内核文件(image.ub/zImage/uImage等)、启动脚本boot.scr。

Tesseract_9527的博客 3375

OpenCV(五) Opencv中 core 核心模块详解—— 常见的数据结构

今天,虽然是周六,但是仍然要学习啊,,我这个菜鸟啥时候才能变大神啊,哎~~下面开始介绍 Opencv 中常见的类和函数

denghe优快云的博客 3241

TI CC2642R蓝牙5.2模块实战:从零搭建智能门锁原型(附电路图)

本文详细介绍了如何基于TI CC2642R蓝牙5.2模块从零搭建智能门锁原型,涵盖硬件选型、低功耗配置、蓝牙安全交互等关键环节。通过CC2642R的高性能MCU和蓝牙5.2技术,开发者可实现低功耗、高安全性的智能门锁设计,并提供实用的电路图和PCB布局建议。

o5p6q的博客 110

【OpenCV】core 模块:核心数据结构、基本操作和数学运算

OpenCV的core模块是库的核心基础,提供关键数据结构和基础运算功能。它定义了Mat类(多维数组)、Point、Rect等结构,支持矩阵运算、统计分析、内存管理和跨模块协作。Core模块的功能包括矩阵创建与运算、图像通道操作、随机数生成以及高效的内存管理。作为底层支持,它广泛应用于图像预处理、矩阵计算和性能优化,并与imgproc、highgui等模块无缝协作,是OpenCV实现计算机视觉任务的基础组件。

彬彬侠的博客 948

SAP 生产订单归档简介

通常在使用了几年的SAP后,系统中会产生非常多的数据在系统中,特别是制造业的生产订单,常年的累积会存在很多的订单在系统中,这个时候就可以使用归档的功能,对生产订单进行处理。标记DLFL的前提是需要完成生产订单的差异结算,DLFL标记可以清除掉生产订单的相关需求和预留。6、在执行CO78选择删除,前面的操作相当于我们把需要归档的数据写入了数据库中,现在正式进行数据的归档删除。然后我们co03在去看生产订单,可以看到生产订单中多了删除的状态和标记的状态。我这里直接执行的程序PPARCHP1,效果其实是一样的。

我小时候很黑的博客 2285

【安全启动】HSM安全启动原理与技术实现白皮书

摘要: 安全启动(Secure Boot)与度量启动(Measured Boot)通过硬件信任根(HSM/TPM等)确保系统启动链路的可信性,实现代码验证与状态记录。HSM作为核心组件,承担密钥保护、签名验证和密码运算任务,与SHE、TPM等协同构建分层信任链。通用计算与嵌入式/汽车场景的启动流程差异显著,前者依赖TPM的PCR度量,后者以HSM为核心实现硬件级安全闭环。工程实践中需权衡性能、合规性及抗攻击能力,并结合后量子密码(PQC)等演进技术优化方案。

weixin_46481662的博客 834

OpenCV(三) Opencv中 core 核心模块详解—— Mat类(一)

之前列举了 OpenCV 中的12 个模块。现在对于每一个模块一一讲述,从 core 模块开始

denghe优快云的博客 4103

游戏战斗系统架构设计的演绎之路——从一坨意大利面条到一座精密钟表

摘要:游戏战斗系统架构设计的演进之路 本文系统梳理了游戏战斗系统从早期街机到现代3A大作的架构发展历程。70-80年代的街机游戏采用基础碰撞盒判定(如《街头霸王》);90年代实现动画融合与状态机架构(《最终幻想》《拳皇》);2000年后MMO引入服务器验证与同步技术(《魔兽世界》);3D时代融合物理引擎与智能AI(《GTA5》《只狼》);移动端则发展出轻量化架构与云端判定(《王者荣耀》)。现代战斗系统已实现模块化、数据驱动和热更新,未来趋势是AI裁判与云战斗系统。这一演进过程展现了技术与创意的完美结合,数百

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 801

OpenCV4.3 Java 编程入门:Core 组件中的数据结构与方法

opencv javadoc 1. java packages 1.1 org.opencv.core 核心功能模块,包括: OpenCV基本数据结构, 动态数据结构, 绘图函数, 数组操作相关函数; 辅助功能 1.2 org.opencv.imgproc imgproc 是 Image 和 Process 两个单词的缩写组合,也就是图像处理模块。包含: 线性和非线性的图像滤波; 图像的几何变换 其他图像变换 直方图相关 结构分析和形状描述 运动分析和对象跟踪 特征检测 目标检测。 2 Core

抱朴守拙 2296

数据分析:蛋白质组的GO term的富集分析详解

在获取差异表达蛋白质的数据之后,依据蛋白质与基因的对应映射关系,开展GO(Gene Ontology)term的富集分析。通过这一分析流程,能够精准地识别出不同实验组中过表达基因所关联的显著富集的GO term通路。这些富集的GO term通路为后续的生物学研究提供了关键线索,有助于深入探究基因功能、揭示潜在的生物学机制,从而推动生物学发现的进程。

专注生信领域 1368

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

OpenCV学习笔记:opencv_core模块

一,简介: opencv最基础的库。包含exception,point,rect,size,slice,vector,matrix,image等数据结构,和相应的操作函数,以及一些基础算法。 二,分析: opencv_core模块src文件包括如下图所示: 下面按照依赖关系来分析各个头文件的作用(后面的头文件依赖于前面的头文件): Header Fil

yangdeshun888的博客 3103

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

OpenCV学习笔记(四十一)——再看基础数据结构core

记得我在OpenCV学习笔记(四)——新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马虎了。对于新版本的数据结构,我再说说。 Point_类不用多言,里面两个成员变量x,y。Point_就是Point2i,也是Point,Point_就是Point2f,Point_就是Point2d。 Point3_类不太常用,跟Point_类差不太多,成

迭代的是人,递归的是神 4万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: OpenCV学习笔记(三)——Mat,图像的新容器
下一篇: OpenCV学习笔记(五)——2.0以上版本和以下版本的数据兼容
bitowang
博客等级 码龄18年 6粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值