OpenCV Mat数据类型指针ptr的使用

2023-10-27

常用形式:
mat.ptr<type>(row)[col]

对于Mat的ptr函数,返回的是<>中的模板类型指针,指向的是()中的第row行的起点
通常<>中的类型和Mat的元素类型应该一致
然后再用该指针去访问对应col列位置的元素

以下转载自:https://blog.csdn.net/github_35160620/article/details/51708659

单通道
cv::Mat image = cv::Mat(400, 600, CV_8UC1); //定义了一个Mat变量image。
uchar * data00 = image.ptr<uchar>(0); //data00是指向image第一行第一个元素的指针。
uchar * data10 = image.ptr<uchar>(1); //data10是指向image第二行第一个元素的指针。
uchar * data01 = image.ptr<uchar>(0)[1];//data01是指向image第一行第二个元素的指针。

多通道
cv::Mat image = cv::Mat(400, 600, CV_8UC3); //宽400,长600,3通道彩色图片
cv::Vec3b * data000 = image.ptr<cv::Vec3b>(0);
cv::Vec3b * data100 = image.ptr<cv::Vec3b>(1);
cv::Vec3b * data001 = image.ptr<cv::Vec3b>(0)[1];

cv::Vec3b * data

 

为什么单通道是uchar类型?

像素灰度使用一个8bit来描述,假如使用int来,那么浪费了24bits的空间.

当某个uchar像素值为255时,
二进制(1111 1111) 八进制(377) 十六进制(0xff)

当我们用int类型去访问该值时,会取32位,也就是4个uchar,:
1111 1111 1111 1111 1111 1111 1111 1111
转化为int就是 -1
usigned int 就是 4294967295
所以这样得到的输出肯定就是不对的
--------------------- 
原文:https://blog.csdn.net/w798396217/article/details/90769100 
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenCV Mat数据类型指针ptr的使用 的相关文章

  • 太骚了,用Excel玩机器学习

    最近发现了一个好玩的Python库 它可以将训练好的机器学习模型转换为Java C JavaScript Go Ruby VBA 本地代码 可以让连Python和机器学习一无所知的同学也能感受预测的神奇 先看效果哈 其实做这个小东西 感觉还
  • 软件测试常用词汇表(中英对照解释)

    black box testing 黑盒测试 将程序视为一个整体 且忽略其内部结构的测试方法 单纯从软件的规格说明中获取测试数据 bottom up testing 自底向上的测试 增量模块测试的一种形式 首先测试底层模 块 再测试调用模块
  • 自定义注解注入属性值(基于反射和静态变量)

    如何通过Spring配置类处理注解 定义注解 定义一个Spring配置类 在配置类中使用Java反射注入静态属性 定义注解 定义一个注解 Name Name注解可以接收一个String类型的属性 并且可以使用在类或者属性上 Target E
  • 释放创造力:生成式 AI 和 Amazon SageMaker 如何帮助企业为营销活动制作广告素材...

    广告公司可以使用生成式 AI 和文字转图像根基模型 制作创新的广告素材和内容 在这篇文章中 我们将演示如何使用 Amazon SageMaker 从现有的基本图像生成新图像 这是一项完全托管式服务 用于大规模构建 训练和部署机器学习模型 采

随机推荐

  • 干了外包3个月,技术退步明显...

    先说一下自己的情况 大专生 18年通过校招进入湖南某软件公司 干了接近4年的功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了2年的女朋友
  • poll两种模式浅析(ET or LT)

    转 http gotowqj iteye com blog 1931556 linux异步IO浅析 http hi baidu com kouu blog item e225f67b337841f42f73b341 html epoll有两
  • Timing Arc

    Timing arc 时序弧 描述从一个pin到另一个pin之间的不可分割的路径时序信息 关键术语 source pin timing arc的起始点 以下图为例 CLK是a1和a8的source pin FF1 CK是a2的source
  • 软件测试--静态白盒测试

    软件测试 静态白盒测试 静态测试是指测试非运行部分 检查和审查 静态白盒测试是指在不执行软件的条件下条理地仔细审查软件设计 体系结构和代码 从而找出软甲缺陷的过程 又称为结构化测试 静态白盒测试的好处 能够尽早发现软件缺陷 并且能够为黑盒测
  • 浅析网络编程之AF_INET和PF_INET

    在网络编程中 创建TCP套接字时 我们使用 socked socket AF INET SOCK STREAM 0 来创建一个网际 AF INET 字节流 SOCK STREAM 套接字 AF表示ADDRESS FAMILY 地址族 PF表
  • VueX报错:Uncaught TypeError: Object(...) is not a function at resetStoreState (vuex.esm-browser.js?

    当我们使用Vuex并运行项目时 发现浏览器报如下错误 这是因为Vuex 版本过高所导致的 我们去package json中查看我们当前的Vuex版本为 vuex 4 0 2 只需重新安装低版本的Vuex就可以解决问题 我们在终端输入 npm
  • Frechet Distance距离算法详解

    Frechet Distance 它是计算两曲线距离的算法 用来判断两曲线的相似度 计算结果越小说明相似度越高 基于python实现该算法 需要下载numpy包 向量库 import math import numpy as np 这个方法
  • jquery获得当前元素父级元素_如何使用jQuery获取父元素

    jQuery获取父元素我们有三种方式可以实现 parent parents closest 下面我们将介绍jQuery获取父元素的这三种方式以及一个具体的示例 web前端学习 打造全网web前端全栈资料库 总目录 看完学的更快 掌握的更加牢
  • 蛋白+小分子配体md(详细保姆教程)

    继续搬一点近期飞书文档模拟的到博客里 参考博客 Gromac中文教程 https jerkwin github io GMX GMXtut 5 E6 A6 82 E8 BF B0 https www jianshu com p b10fe4
  • 基于Python的爬虫设计与数据分析 计算机毕业设计源码37836

    目 录 摘要 1 绪论 1 1课题背景 1 2研究目的及意义 1 3爬虫技术 1 4django框架介绍 2 1 5论文结构与章节安排 3 2 基于Python的爬虫设计与数据分析分析 4 2 1 可行性分析 4 2 2 系统流程分析 4
  • 用户积分营销的三种方式

    私域流量时代下 商家们都纷纷搭建私域流量池来实现引流 增长 但是如果商家只是单纯地通过搭建私域流量池来实现用户进行转化 出来的效果是非常缓慢的 同时对于用户留存以及用户粘性的提升帮助不是太大 因此 我们需要设计一种新的玩法去进行私域流量池运
  • 设置DialogFragment背景透明

    设置DialogFragment背景透明的方法如下 1 在onCreateView 方法中设置弹窗内部的背景透明 Override public View onCreateView LayoutInflater inflater Nulla
  • postman下载文件乱码

    环境 postman v8 0 7 遇到的问题 postman下载文件时乱码 解决方案 不要用send 用边上小箭头里的send and Download
  • JS 鼠标粒子效果

  • UE虚幻引擎教程_生成云平台指定路径下的exe文件

    市面上大量优秀的游戏都是基于UE制作的 UE虚幻引擎制作的作品可以在windows mac linux以及ps4 x boxone ios android甚至是html5等平台上运行 本文介绍了UE虚幻引擎如何生成云平台指定路径下的EXE
  • 创建操作符(初稿)

    just 将一个或多个对象转换成发射这个或这些对象的一个Observable from 将一个Iterable 一个Future或者一个数组转换成一个Observable create 使用一个函数从头创建一个Observable defe
  • vim 插入模式小技巧

    1 vim插入模式快捷键 ctrl h 删除上一个字符 ctrl w 删除上一个单词 ctrl u 删除当前行 这三个快捷键也适用与终端中 2 终端中的快捷键 ctrl a 快速移动到行首 ctrl e 快速移动到行末 ctrl b 向前移
  • 面试题-网络

    以下所有整理内容都是我从第一次面试开始 将所有遇到的问题整合后的结果 所有的内容都是我在面试中真实遇到的问题 有BAT这样的大厂 也有很多小厂 在面试超过20家之后 遇到的绝大多数问题都开始重复 这份资料给我的面试带来了非常多的便利 现在我
  • 大数据单机学习环境搭建(12)Azkaban的简单使用

    专题 大数据单机学习环境搭建和使用 1 登录和密码修改 2 新建工程 2 1新建工程 2 2创建zip文件 2 3添加文件到项目 3 任务执行 3 1立即执行 3 2 设置定时任务 4 依赖任务建立 大数据单机学习环境搭建 12 Azkab
  • OpenCV Mat数据类型指针ptr的使用

    常用形式 mat ptr