初窥OpenCV
文章平均质量分 64
丶沉默
乐观开朗,积极向上,活泼可爱,热爱学习的有志青年。
展开
-
OpenCV学习笔记二(2016年12月4日)Mat类
一般来说,灰度图像用2维矩阵表示,彩色(多通道)图像用3维矩阵(M X N X 3)表示。对于图像显示来说,目前大部分设备都是用无符号8位整数(类型为CV_8U)表示像素亮度。图像数据在计算机内存中的存储顺序一图像最左上点(也可能是最左下点)开始,如图所示:I ij 表示第 i 行 j 列的像素值。如果是多通道图像,比如 RGB 图像,则每个像素用三个字节表示。在 OpenCV 中,R原创 2016-12-04 17:12:55 · 417 阅读 · 0 评论 -
OpenCV学习笔记三(2016年12月4日)像素值的读写
1、at()函数遍历图像像素函数at()对矩阵中某个像素进行读取或者对某个像素进行复制操作。但是效率并不高。例如:uchar value = grayim.at(i,j); //读出第i行第j列像素值 grayim.at(i,j) = 128; //将第i行第j列像素值设置为128//建立单通道的grayim以及3通道的colorim原创 2016-12-04 20:15:23 · 2854 阅读 · 0 评论 -
OpenCV学习笔记四(2016年12月5日)选取图像局部区域
Mat 类提供了多种方便的方法来选择图像的局部区域。 使用这些方法时需要注意,这些方法并不进行内存的复制操作。如果将局部区域赋值给新的 Mat 对象,新对象与原始对象共用相同的数据区域,不新申请内存,因此这些方法的执行速度都比较快。#include "opencv2/opencv.hpp"#include using namespace cv;using namespace std;原创 2016-12-05 10:32:16 · 618 阅读 · 0 评论 -
OpenCV学习笔记五(2016年12月5日)Opencv基本架构分析
参考书籍《OpenCV3编程入门》毛星云 2015年2月第一版本人使用的是OpenCV2.4.13版...\opencv\build\include目录:包含opencv和opencv2两个文件夹,opencv文件夹包含的是旧版的头文件,opencv2文件夹包含的是新版的头文件。如下图:其中:opencv_modules.hpp存放的是OpenCV2中与新模块构造相关的说明代码原创 2016-12-05 14:11:36 · 563 阅读 · 0 评论 -
OpenCV学习笔记六:OpenCV2代码升级到OpenCV报错
原创 2016-12-05 16:22:58 · 369 阅读 · 0 评论 -
OpenCV学习笔记一 (2016.12.3)
1、imread函数函数定义:Mat imread(const string& filename, int flags=1 );第一个参数为图像的路径,第二个参数flags为载入标识,指定一个加载图像的颜色类型,缺省为1,此时载入三通道的彩色图像。flags取值:CV_LOAD_IMAGE_ANYDEPTH- 如果取这个标识的话,若载入的图像的深度为16位或者32位,就返回对应深度原创 2016-12-03 20:00:03 · 425 阅读 · 0 评论 -
OpenCV学习笔记七——关于Mat类
1、创建一个Mat对象仅仅是创建了信息头部分,并没有复制图像矩阵,而是通过矩阵指针指向某一地址而实现。eg: Mat A,C; //仅创建信息头部分 A =imread("1,jpg"); Mat B(A); // 使用拷贝构造函数 C = A; //赋值运算符以上创建的所有Mat对象最终都指向同一个也是唯一的一个数据矩阵。虽然信息头不同原创 2016-12-13 16:40:43 · 366 阅读 · 0 评论 -
OpenCV学习笔记八——常用数据结构和函数
1、点的表示:Point类Point类数据结构表示了二维坐标系下的点,既由其图像坐标x和y指定的2D点:Point point;point.x = 10;point.y = 8;或者:Point point = point(10,8);OpenCV中的定义:typedef Point_ Point2i;typedef Point2i Point;ty原创 2016-12-13 21:21:42 · 794 阅读 · 0 评论 -
OpenCV学习笔记九——访问图像中的像素
1、图像在内存之中的存储方式图像矩阵的大小取决于所用的颜色模型如果是灰度图像:如果是多通道图像,则矩阵的每一列都包含多个子列。如:RGB图像:很多情况下,因为内存足够大,可以实现连续存储,因此,图像中的各行就能一行一行的连接起来,形成一个长行。连续存储有助于提升图像扫描速度,我们可以使用isContinuous()来判断矩阵是否是连续存储的。2、颜色空间缩减若矩原创 2016-12-28 17:06:59 · 916 阅读 · 1 评论