文档章节

OpenCV学习笔记(一)____OpenCV基本数据类型

沉默的大绵羊
 沉默的大绵羊
发布于 2015/04/16 09:52
字数 390
阅读 36
收藏 0

Point_

typedef Point_<int> Point2i;
typedef Point2i Point;
typedef Point_<float> Point2f;
typedef Point_<double> Point2d;

Point3_

typedef Point3_<int> Point3i;
typedef Point3_<float> Point3f;
typedef Point3_<double> Point3d;

Size_

typedef Size_<int> Size2i;
typedef Size2i Size;
typedef Size_<float> Size2f;

Rect_

typedef Rect_<int> Rect;

Matx

typedef Matx<float,1,2> Matx12f;
typedef Matx<double,1,2> Matx12d;
...

Vec

typedef Vec<uchar, 2> Vec2b;
typedef Vec<short,3> Vec3s;
typedef Vec<int, 4> Vec4i;
typddef Vec<float,6> Vec6i;
...

Scalar_

typedef Scalar_<double> Scalar;

Range

class Range
{
public:
...
int start, end;
};

ex:取A的全部行,和 1到180列

Mat A = imread("b.jpg", CV_LOAD_IMAGE_COLOR);
	Mat B = A(Range::all(), Range(1, 180));

Mat

创建复杂的矩阵

// make a 7x7 complex matrix filled with 1+3j.
	Mat M(7,7,CV_32FC2,Scalar(1,3));
	// and now turn M to a 100x60 15-channel 8-bit matrix.
	// The old content will be deallocated
	M.create(100,60,CV_8UC(15));

多维数组

// create a 100x100x100 8-bit array
	int sz[] = {100, 100, 100};
	Mat bigCube(3, sz, CV_8U, Scalar::all(0));

矩阵行操作

// add the 5-th row, multiplied by 3 to the 3rd row
	M.row(3) = M.row(3) + M.row(5)*3;

矩阵列操作

// now copy the 7-th column to the 1-st column
	// M.col(1) = M.col(7); // this will not work
	Mat M1 = M.col(1);
	M.col(7).copyTo(M1);

locateROI使用

Mat A = Mat::eye(10, 10, CV_32S);
	// extracts A columns, 1 (inclusive) to 3 (exclusive).
	Mat B = A(Range::all(), Range(1, 3));
	// extracts B rows, 5 (inclusive) to 9 (exclusive).
	// that is, C ~ A(Range(5, 9), Range(1, 3))
	Mat C = B(Range(5, 9), Range::all());
	Size size; Point ofs;
	C.locateROI(size, ofs);
	// size will be (width=10,height=10) and the ofs will be (x=1, y=5)

矩阵元素访问:

指针加[ ] 

int sum = 0;
	Mat M = Mat::eye(20, 20, CV_8UC1);
	for (int i=0; i < M.rows; i++)
	{
		const uchar* mi = M.ptr<uchar>(i);
		for (int j=0; j < M.cols; j++)
		{
			sum += mi[j];
		}
	}

迭代

MatConstIterator_<uchar> it = M.begin<uchar>(), it_end = M.end<uchar>();
	for (; it != it_end; ++it)
		sum += *it;


本文转载自:blog.csdn.net/merlin_q/article/details/7077523

沉默的大绵羊
粉丝 1
博文 20
码字总数 9624
作品 0
美国
程序员
私信 提问
OpenCV学习笔记(09):opencv3.2+cmake3.8+VS2013,编译opencv_contrib

版权声明:假装这里有个版权声明…… https://blog.csdn.net/CV_Jason/article/details/70037545 Cmake编译opencv contrib部分 1. 前言 最近才知道,在OpenCV3.0 之后,OpenCV算法包被拆分成...

CodeLike
2017/04/10
0
0
深刻了解OPENCV

OpenCV是Intel资助的开源计算机视觉库。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。 OpenCV 拥有包括 300 多个C/C++函数的跨平台的中、高层 API。...

红薯
2008/12/10
3.3K
3
世界上最好的语言PHP:我也可以用OpenCV搞计算机视觉

  选自Medium   作者:Vladimir Goncharov   机器之心编译   参与:Huiyuan Zhuo、思源、刘晓坤      作者 Vladimir Goncharov 平常主要关注与研究两个主题:PHP 和 Server Adm...

机器之心
2018/06/25
0
0
视频人脸检测——Dlib版(六)

往期目录 视频人脸检测——Dlib版(六) OpenCV添加中文(五) 图片人脸检测——Dlib版(四) 视频人脸检测——OpenCV版(三) 图片人脸检测——OpenCV版(二) OpenCV环境搭建(一) 更多更...

王磊的博客
2018/05/11
0
0
基于OpenCV和Python的文件操作——捕获摄像头的帧,在窗口显示图像,在窗口显示摄像头帧和视频文件的读/写

0 写在前面 这篇博客主要参考资料为《OpenCV 3计算机视觉Python语言实现》(Learning OpenCV 3 Computer Vison with Python)。 因为之前用Faster R-CNN做过一个红绿灯检测的小实践,但是Git...

learning_tortosie
2018/04/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

可能是国内第一篇全面解读 Java 现状及趋势的文章

作者 | 张晓楠 Dragonwell JDK 最新版本 8.1.1-GA 发布,包括全新特性和更新! 导读:InfoQ 发布《2019 中国 Java 发展趋势报告》,反映 Java 在中国发展的独特性,同时也希望大家对 Java 有...

阿里云官方博客
11分钟前
2
0
Spring Boot 2.x基础教程:Swagger静态文档的生成

前言 通过之前的两篇关于Swagger入门以及具体使用细节的介绍之后,我们已经能够轻松地为Spring MVC的Web项目自动构建出API文档了。如果您还不熟悉这块,可以先阅读: Spring Boot 2.x基础教程...

程序猿DD
14分钟前
2
0
《毅力》读书笔记

1.确信你全身心地投入 2.准备好为目标进行艰难的跋涉 3.通过减少需要使用毅力的情形,为将来的挑战做好准备 4.尽可能具体细致地确定你的目标和实现目标的过程 5.把挑战分解为小而易于管理的小...

lingch
15分钟前
3
0
zk中快速选举FastLeaderElection实现

选举涉及概念 服务器状态 投票 如何选择投票? 协议 选举 如何进行选举? epoch 发送者 接收者 发送队列 接收队列 服务器状态 public enum ServerState { LOOKING,寻找Leader状态,当服务处于...

writeademo
18分钟前
2
0
教你玩转Linux—磁盘管理

Linux磁盘管理好坏直接关系到整个系统的性能问题,Linux磁盘管理常用三个命令为df、du和fdisk。 df df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少...

Linux就该这么学
21分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部