学习Opencv(蝴蝶书/C++)相关——3. OpenCV的数据类型

文章目录

  • 1. 堆栈和动态分配内存
  • 2. 模版类语法
    • 2.1 OpenCV中的模板结构
    • 2.2 C++ template基本语法
  • 3. 优化
    • 3.1 OpenCV的cv::Mat类计算优化
      • 3.1.1 cv::Mat VS numpy array
      • 3.1.2 结论
    • 3.2 Eigen库
      • 3.2.1 简介
      • 3.2.2 Eigen vs OpenCV::mat vs GLM
    • 3.3 关于优化
  • 4. STL,Boost和std
    • 4.1 名词解释
    • 4.2 更详细的说明
  • 5. OpenCV中的异常类
  • 6. OpenCV中的gemm

1. 堆栈和动态分配内存

在这里插入图片描述
图自: https://web.stanford.edu/class/cs231m/lectures/lecture-4-opencv.pdf

参考自: https://web.stanford.edu/class/cs231m/lectures/lecture-4-opencv.pdf

  • 堆区(heap):存储程序员自己申请的内存空间
  • 栈区(stack):存储程序运行时分配的局部变量
  • 经常看到数据结构里统称堆栈为stack,不要搞混,翻译问题。

感谢栈和堆(Stack & Heap)
在这里插入图片描述

参考:

  • 深入详解C/C++动态内存管理
  • 什么是堆?什么是栈?他们之间有什么区别和联系?
  • 堆栈与堆(Stack vs Heap):有什么区别?图文并茂拆解代码解析!
  • 一文搞懂栈(stack)、堆(heap)、单片机裸机内存管理malloc
  • 堆和栈的区别
  • 栈和堆(Stack & Heap)

2. 模版类语法

2.1 OpenCV中的模板结构

cv::Point_<>这个类名称最后的下划线,这是一种常见但并不通用的表示模版的写法,
在OpenCV3.x版本中,在不需要特别说明的地方,下划线会被删除。
因此,cv::Point_<>仍然有下划线是为了区别于cv::Point(类),即:cv::Point2i,
而cv::Vec<>没有下划线,3.x版本已经不支持cv::Vec_<>了

可以看看:学习Opencv(蝴蝶书/C++)——3. OpenCV的数据类型中
2. 基础类型的目录中那些数据类型的名字,有些有下划线,有些没有

在这里插入图片描述

2.2 C++ template基本语法

TDO
等我复习完C++再来填坑

3. 优化

3.1 OpenCV的cv::Mat类计算优化

3.1.1 cv::Mat VS numpy array

之前总是听人说或者感觉C++比python快,刚好看到这个问题what is the Optimization of the c++ matrix calculation with opencv::Mat说,遇到了numpy(计算优化过的python库)计算矩阵比OpenCV的mat算的快的情况。

刚好自己这里试验一下:用两个512*1024的矩阵相乘

#include <iostream>
#include <opencv2/opencv.hpp>
/*
测试一下矩阵运算C++和python的速度。
*/
int main(int argc, char **argv)
{cv::Mat time(512, 1024, CV_32F);cv::Mat time2

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

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

相关文章

基于单片机设计的超声波测距仪(采用HC-SR04模块)

一、前言 本项目是基于单片机设计的超声波测距仪&#xff0c;主要采用了STC89C52单片机和HC-SR04超声波测距模块。通过LCD1602液晶显示屏来展示测量的距离信息。 超声波测距技术是一种常见的非接触式测距方法&#xff0c;利用超声波的传播速度测量物体与测距器之间的距离。它…

npm-工具包

npm-工具包 npm 介绍 npm&#xff08;Node Package Manager&#xff09;是用于管理和共享Node.js包&#xff08;包括代码、工具和资源&#xff09;的包管理工具 常用命令 局部安装包 npm install <package-name>: 安装指定的包 npm install <package-name> --save…

吉利展厅 | 透明OLED拼接2x2:科技与艺术的完美融合

产品&#xff1a;4块55寸OLED透明拼接屏 项目地点&#xff1a;南宁 项目时间&#xff1a;2023年11月 应用场景&#xff1a;吉利展厅 在2023年11月的南宁&#xff0c;吉利展厅以其独特的展示设计吸引了众多参观者的目光。其中最引人注目的亮点是展厅中央一个由四块55寸OLED透…

4.Spring源码解析-loadBeanDefinitions(XmlBeanDefinitionReader)

第一个点进去 发现是空 肯定走的第二个逻辑了 这里在这里已经给属性设置了值&#xff0c;所以肯定不是空能拿到。 1.ClassPathXmlApplicationContext 总结&#xff1a;该loadBeanDefinitions是XmlBeanDefinitionReader设置xml文件在哪。

win11系列:避坑宝典|win11升级最新预览体验版bug梳理

win11系列&#xff1a;避坑宝典|win11升级最新预览体验版bug梳理 一、亲测win11升级的前世今生。&#xff08;一&#xff09;问题描述梳理。&#xff08;二&#xff09;故障原因分析。&#xff08;三&#xff09;具体解决方案。2.【已解决】①尝试关Hyper-v重启&#xff1b;②从…

数据库基础入门 — 关联查询

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 本…

【刷题笔记】匹配字符串||KMP||动图解析||符合思维方式

找出字符串中第一个匹配项的下标 1 题目描述 https://leetcode.cn/problems/find-the-index-of-the-first-occurrence-in-a-string/ 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开…

IP-Adapter:文本兼容图像提示适配器,用于文本到图像扩散模型

IP-Adapter这是一种有效且轻量级的适配器&#xff0c;用于实现预训练文本到图像扩散模型的图像提示功能。只有 22M 参数的 IP 适配器可以实现与微调图像提示模型相当甚至更好的性能。IP-Adapter 不仅可以推广到从同一基本模型微调的其他自定义模型&#xff0c;还可以推广到使用…

光伏、半导体等行业废水除氟解决方案:

在太阳能电池板或者半导体硅片生产过程中需要大量使用一种无机酸⸺氢氟酸&#xff0c;从而产生大量的含氟 废水&#xff0c;对环境和人体健康产生很大危害。氟化物长期积累在人体中会深入骨髂生成CaF2 &#xff0c;造成骨质疏松&#xff0c; 牙齿斑釉&#xff0c;韧带钙化&…

Linux常见指令基础知识

目录 初始Linux操作系统 Linux背景&#xff1a; 开源 &#xff1a; 发行版本&#xff1a; ​编辑 OS概念&#xff0c;定位&#xff1a; 使用 XShell 远程登录 Linux Linux相关知识 文件是什么&#xff1f; 路径分隔符 &#xff08;.&#xff09; 和 &#xff08;. .&…

「Linux」git的安装与使用

&#x1f4bb;文章目录 &#x1f4c4;前言安装git的使用配置git初始化 git 仓库提交文件推送到远端使用HTPPS方式&#xff1a;SSH方式 &#x1f4d3;总结 &#x1f4c4;前言 git是一款多平台的版本管理器&#xff0c;用于对代码进行版本控制&#xff0c;如果你还不知如何安装gi…

Day43力扣打卡

打卡记录 子数组的最小值之和&#xff08;乘法原理 单调栈&#xff09; 大佬的题解 class Solution:def sumSubarrayMins(self, arr: List[int]) -> int:n len(arr)# 左边界 left[i] 为左侧严格小于 arr[i] 的最近元素位置&#xff08;不存在时为 -1&#xff09;left, s…