正式进入OpenCV学习了,前面开始的都是一些环境搭建和准备工作,对一些数据结构的认识主要是Mat类的认识: [1.学习目标] 图像的加载:imread() 图像的修改:cvtColor() 图像的显示:imshow() 图像的保存:   imwrite() [2.函数原型与参数说明] a.图像的加载: Mat imread( ); 参数说明: filename:文件盘符 flags:flags>0,三通道彩色图   flags=0,灰度图    flags<0,包含Alpha通道的图像 b.…
学习如歌对图像进行颜色空间转换,从BGR到灰度图,或者从BGR到HSV等 创建一个程序用来从一幅图像中获取某个特定颜色的物体 1.转换颜色空间 OpenCV中有超过150种进行颜色空间转化的方法,但是实际上经常用到的也就两种:BGR<->Gray,BGR<->HSV 要用的函数是cv2.cvtColor(input_img,flag)flag就是转换类型 cv2.COLOR_BGR2GRAY 就是BGR<->Gray转换 cv2.COLOR_BGR2HSV 就是BGR&…
关键 1参数里的分辨率是图像本身的分辨率,而不是指定生成的视频分辨率.如果要修改分辨率,要么后期软件处理,要么读图的时候resize 2要正常退出,不要强制退出. 3生成的只能是avi格式. #include <iostream> #include <string> #include "opencv2/highgui/highgui.hpp" #include "opencv2/core/core.hpp" #include "op…
学习图像梯度,图像边界等 梯度简单来说就是求导. OpenCV提供了三种不同的梯度滤波器,或者说高通滤波器:Sobel,Scharr和Lapacian.Sobel,Scharr其实就是求一阶或二阶导.Scharr是对Sobel的部分优化.Laplacian是求二阶导. 1.Sobel算子和Scharr算子 Sobel算子是高斯平滑和微分操作的结合体,所以他的抗噪声能力很好.你可以设定求导的方向(xorder 或 yorder).还可以设定使用的卷积核大小(ksize).当ksize=-1时,会使…
图像金字塔指的是同一图像不同分辨率的子图的集合,有向下取样金字塔,向上取样金字塔,拉普拉斯金字塔....它是图像多尺度表达的一种,最主要的是用于图像的分割 向下取样金字塔指高分辨率图像向低分辨率图像的转换,从第i层获得第i+1层的步骤(G[i]->G[i+1]) 1.对图像G[i]进行高斯卷积,卷积核为得到一个新的高斯模糊后的图像, 2.对新图像删除所有偶数行和偶数列(像素),得到缩小为原图四分之一的新图,即G[i+1] 上述操作称为Octave. 重复下去,可以不断缩小图像(每次变为原图的四分…
查找轮廓的不同特征,例如面积,周长,重心,边界等 1.矩 图像的矩可以帮助我们计算图像的质心,面积等. 函数cv2.momen()会将计算得到的矩以一个字典的形式返回, 我们的测试图像如下: 例程如下: # -*- coding:utf-8 -*- import numpy as npimport cv2from matplotlib import pyplot as plt img = cv2.imread('8.jpg',0)ret,thresh = cv2.threshold(img,12…
不同的形态学操作,例如腐蚀,膨胀,开运算,闭运算等 形态学操作是根据图像形状进行的简单操作.一般情况下对二值化图像进行操作.需要的参数有两个,一个是原始图像,第二个被称为结构化元素或核,它是用来决定操作性质的.两个基本的形态学操作是腐蚀和膨胀.他们的变体构成了开运算,闭运算,梯度等. 1.腐蚀 就像土壤侵蚀一样,这个操作会把前景物体的边界腐蚀掉(但前景仍然是白色的).怎么实现的?卷积核沿着图像滑动,如果与卷积核对应的原图像的所有像素值都是1,那么中心元素就保持原来的像素值,否则就变为0. 这样根…
简单阈值,自适应阈值,Otsu's二值化等 1.简单阈值 当像素值高于阈值时,我们给这个像素赋予一个新值,否则给他赋予另一个值.这个函数就是cv2.threshhold().这个函数的第一个参数就是原图像,一般是灰度图(貌似非灰度图也可以).第二个参数就是用来对像素值进行分类的阈值.第三个参数就是当像素值高于阈值时应该被赋予的新像素值.(之前在设置掩码的时候已经提过这个函数了) OpenCV提供了多种不同的阈值方法,这是第四个参数.这些方法包括: cv2.THRESH_BINARY cv2.TH…
前提条件:1,确保读者已经安装了kinect或者其他深度摄像头的驱动,如果未安装,可以直接在网盘下载:http://pan.baidu.com/s/1hqHB10w 提取密码:wrmn 利用深度相机仿激光数据创建地图: 所依赖包的下载与安装: 1,安装hector_slam 2,下载hector_slam_example:下载地址,编译好之后,记住需要将这个文件加入ros包中 ROS_PACKAGE_PATH=/home/用户名/catkin_ws/hector_slam_example:$RO…
图像梯度的算法有很多方法:sabel算子,scharr算子,laplacian算子,sanny边缘检测(下个随笔)... 这些算子的原理可参考:https://blog.csdn.net/poem_qianmo/article/details/25560901 下面是我的一些理解: sabel算子: sobel算子主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测. 函数: Python: cv2.Sobel(src, ddepth, dx, dy[, dst[, ksize[, s…