1. 究竟是先返回行数(号)还是列数(号)在 MATLAB 里非常明显,一般用类似于 size(img) 这样的命令,返回的顺序依次是 [rows, cols, tubs],也就是行数、列数,如果是 3 维张量的话还有 tube 数,非常的统一。但在 OpenCV 里,似乎不同函数返回的顺序并不一样,这一小节的目的就是捋清楚那些是先返回行数(号)后返回列数(号),哪些又正好相反。

1.1 minMaxLoc 函数

minMaxLoc 函数可以返回一个矩阵的最小值、最大值、最小值的坐标,最大值的坐标。但这个返回的坐标却是先列号,后行号,(列号,行号)。实验结果如下所示:

cv::Mat haha(3,3,CV_8UC1);

haha.setTo(1);

haha.at(0,1) = 2;

haha.at(1,2) = 0;

double minVal, maxVal;

cv::Point minPoint, maxPoint;

cv::minMaxLoc(haha, &minVal, &maxVal, &minPoint, &maxPoint);

std::cout<

std::cout<

std::cout<

std::cout<

// minVal = 0

// maxVal = 2

// minPoint = [2, 1]

// maxPoint = [1, 0]

1.2 size 函数

size 函数可以返回一个矩阵的尺寸,返回结果是 cv::Size 类型,但这个返回的坐标却是先列数,后行数,所幸该类型有 height 和 width 两个属性分别对应行数和列数。需要注意的是,不要看到 size 返回的结果就默认跟 MATLAB 一样,导致搞错行数列数,引发后续一系列出错。实验结果如下:

#include

#include

int main(int argc, char **argv)

{

cv::Mat_ haha = cv::Mat::zeros(4,5,CV_64F);

std::cout<

cv::Size hahaSize = haha.size();

std::cout<

std::cout<

std::cout<

std::system("PAUSE");

return 0;

}

2. 逻辑运算符号辨析

2.1 与运算和或运算

对 cv::Mat_ 类型做与或运算好像是用 & 和 |,而非 C++ 里对单个元素的 && 和 || 。

2.2 非运算

OpenCV 里对 cv::Mat_ 类型的矩阵取反用的是 ~,跟 MATLAB 一样,而非是 C++ 里面的 !。

初写于2015-08-25,未完待续。

首发于 Yimian Dai's Homepage,转载请注明出处。

参考文献

matlab tube函数,2015-08-25-OpenCV for Matlab Users (5) - OpenCV 自身易搞混的函数辨析相关推荐

  1. 阿里云accessKey如何创建?~ 2015.08.25

    选择导航条上面的ACCESSKeys(工单服务左边,我一开始也没注意到) 创建一下,然后同意 验证一下 收工

  2. OpenCV | 双目相机标定之OpenCV获取左右相机图像+MATLAB单目标定+双目标定

    博主github:https://github.com/MichaelBeechan 博主CSDN:https://blog.csdn.net/u011344545 原本网上可以搜到很多关于双目相机标 ...

  3. opencv读取MATLAB双目标定的结果进行双目校正

    概述: opencv内部也有双目标定的函数,但是结果有时候会飘,所以想先用MATLAB标定工具箱试试看.使用MATLAB先队两个相机进行单目标定,然后进行双目标定,将结果保存在xml文件中.xml文件 ...

  4. 如何把opencv编译到matlab,c – 为OpenCV编译MATLAB绑定

    我正在尝试编译OpenCV 3.0的MATLAB绑定,即 Github的当前版本.我一直收到以下错误: CMake Error at /opencv/modules/matlab/compile.cm ...

  5. opencv 腐蚀 matlab,Opencv3编程入门笔记(4)腐蚀、膨胀、开闭运算、漫水填充、金字塔、阈值化、霍夫变换...

    19      腐蚀erode.膨胀dilate 腐蚀和膨胀是针对图像中的白色部分(高亮部分)而言的,不是黑色的.除了输入输出图像外,还需传入模板算子element,opencv中有三种可以选择:矩形 ...

  6. opencv为matlab,OpenCV与matlab部分函数的对应关系(转)

    2.matlab中的zeros函数相当于OpenCV中的cvSetZero函数. 3.matlab中的两矩阵点乘 .* 相当于OpenCV中的cvMul函数. 4.matlab中的两矩阵点除 ./ 相 ...

  7. B站台湾大学郭彦甫|MATLAB 学习笔记|08 图像处理I Image Processing

    MATLAB学习笔记(08 图像处理I Image Processing) 如果想获得更好浏览体验的朋友可以转到下面链接 08 1. 基本操作 读取图像 imread() 展示图像 imshow() ...

  8. matlab函数全能速查宝典 pdf,MATLAB函数全能速查宝典

    第1章 MATLAB操作基础 1.1 MATLAB概述 1.1.1 MATLAB产生的历史背景 1.1.2 MATLAB的主要功能 1.1.3 MATLAB的语言特点 1.2 MATLAB的运行环境及 ...

  9. opencv实现imfill_使用opencv实现matlab中的imfill填充孔洞功能

    使用opencv实现matlab中的imfill填充孔洞功能,整体思路如下: 1.      首先给原始图像四周加一圈全0,并保存为另一幅图像 2.      使用floodFill函数给新图像进行填 ...

  10. matlab数学实验教程实验1实验报告,Matlab数学实验一2015(答案版)

    Matlab数学实验一--matlab初体验 一. 实验目的及意义 [1] 熟悉MATLAB软件的用户环境: [2] 了解MATLAB软件的一般目的命令: [3] 掌握MATLAB数组操作与运算函数: ...

最新文章

  1. @ControllerAdvice注解(全局异常捕获)
  2. oracle ddl会被什么阻塞,MySQL Online DDL与DML并发阻塞关系总结
  3. ARMS V4.3发布,应用监控全新支持内存快照分析,全息排查等功能。
  4. 关于 varchar2 的最大长度
  5. Python Django单表查询之日期查询(大于小于范围查询)
  6. sklearn决策树概述
  7. mongodb dsl_具有Java DSL的Spring Integration MongoDB适配器
  8. POJ_2513Colored Sticks 字典树+
  9. css 动态生成圆形区域内扇形个数_CSS实用技巧总结
  10. JSP的7个动作指令-forward指令
  11. Centos系统查看版本
  12. 第 7 章 排序算法
  13. LINQ to SQL集成到应用程序中需考虑的一些问题
  14. 网页版office服务器,Office 网页版服务说明
  15. Linux系统配置静态IP地址步骤
  16. 斗鱼封禁主播陈一发,新媒体有出路吗?
  17. 如何使用QT实现左右滑动的按钮
  18. Linux命令之设置普通用户具有超级管理员权限sudo
  19. 斜体加粗昵称生成源码
  20. 【汇智学堂】docker网络管理之二

热门文章

  1. android启用hdcp_如何在Android Auto上启用开发人员设置
  2. 2D美术3——PS笔刷延迟、图层卡顿等解决办法(百试百灵)
  3. 怎样免费快速把PDF文件压缩到最小?
  4. 两年数据对比柱形图_你与专业堆积柱形图的距离,只差一个数据标签
  5. IPv6过渡技术——NAT64、DNS64讲解
  6. 求解一元二次方程的解 (分支语句)
  7. 人工神经网络概念梳理与实例演示
  8. JAVA POI EXCEL导出工具方法 支持冻结列行和设置不可编辑整行整列
  9. u盘文件或目录损坏且无法读取
  10. 资源 就是Tianmao项目里小部分备用 测试 的数据以及图片