OpenCV学习
文章平均质量分 85
xmfthu
北京理工大学自动化学院导航制导与控制方向在读硕士研究生,感兴趣内容为惯性导航与智能导航,机器人,计算机视觉。
展开
-
OpenCV(二)如何对图像的像素进行操作
对图像的像素进行操作,我们可以实现空间增强,反色等目的。让我们先来看一下内存空间中图像矩阵,也就是Mat的矩阵数值部分是怎么存储的:如果图像是一幅灰度图像,他就像这样,从左到右,从上到下,依次是矩阵的每一行每一列,这时候矩阵M(i,j)的值自然就是当前点的灰度值了。而对于一幅彩色图像,由于它的像素分量channel并不是一个,所以每一列又分为了几个channel。拿常见的RGB图像来说原创 2013-11-02 15:43:28 · 3759 阅读 · 0 评论 -
学习OpenCV(一)从Mat讲起
本博客所用OpenCV版本为2.4.3,运行环境为Visual Studio2012。学习OpenCV是一个比较漫长的过程,希望我能够坚持!一.MatMat是OpenCV中用于存放图像的数据结构。我们知道,图像在计算机中是以数组的形式存放的。Mat正是描述的这样一种数据结构。通过调用相关方法,我们能够实现对图像的输入输出以及一些操作。同时,Mat又不止可以作为图像容器,它也可以作为一种原创 2013-11-01 20:31:25 · 2460 阅读 · 0 评论 -
学习OpenCV(三)用filter2D实现矩阵掩码操作
在对数字图像进行处理时,我们一般都会在空间域(spatial domain)或者频域(frequency domain)中进行。所谓“空间域”,实际上指的是图像本身,在空间域上的操作常常是改变像素点的值,也就是经过一个映射(我们所做的变换,如滤波等),将原来的f(x,y)变换为新的g(x,y)。而“频域”,它的数学基础是法国学者傅里叶提出的傅里叶级数和随后发展起来的傅里叶变换。在这其中起到重要作用原创 2013-11-10 14:27:05 · 24831 阅读 · 3 评论 -
学习OpenCV(四) 改变图像的对比度和亮度——像素变换
在上篇文章中,我们介绍了如何用filter2D函数来对图像进行邻域变换。这篇文章我们来简单介绍一下如何对图像的像素进行变换。对图像的单个像素进行变换,是图像处理中一个很常见的操作。比如改变图像的亮度,对图像像素进行线性变换,二值化等。下面将以改变图像的对比度和亮度来举例。改变图像的对比度和亮度,归根到底,就是下面的这个数学公式:这个式子很好理解。就是将原来图像中的像素值进行比例变换原创 2013-11-12 19:16:39 · 2745 阅读 · 0 评论 -
OpenCV学习(五)平滑滤波
在图像处理中,会用到对图像的平滑处理。平滑常常被用来消除图像的噪声,下面介绍几个常用于图像平滑处理的函数。(1)blur平滑处理常常用到的是线性滤波器。线性滤波器的数学基础建立在卷积的概念之上。对于一个线性滤波器,变换之后图像的输出值其实就是该点的某个邻域内各点输入像素值的加权求和。假如我们现在有一幅M*N的图像要进行线性滤波,我们采用的卷积核(kernel)的大小为m*n,那么处理之后的原创 2013-12-03 14:22:36 · 2796 阅读 · 0 评论 -
学习OpenCV(六)TrackBar的使用
在以前的几个例子里面,我们并没有实现与计算机的交互。在OpenCV中,我们可以使用TrackBar来进行交互,调整一些参数的大小。这篇文章主要介绍了如何使用TrackBar。举一个均值滤波blur的例子。我们已经知道,卷积核影响了均值滤波的效果。卷积核越大,图像的模糊化越严重。我们可以使用TrackBar动态地调整卷积核的大小,这样可以使得实验效果更加直观。首先,来看一下参考手册中的描述。原创 2013-12-04 13:38:01 · 5168 阅读 · 1 评论