随笔分类 -  opencv

摘要:1.介绍HOG(Histogram of Oriented Gradient)是2005年CVPR会议上,法国国家计算机科学及自动控制研究所的Dalal等人提出的一种解决人体目标检测的图像描述子,该方法使用梯度方向直方图(Histogram of Oriented Gradients,简称HOG)特征来表达人体,提取人体的外形信息和运动信息,形成丰富的特征集。2.生成过程1)图像归一化归一化图像的主要目的是提高检测器对光照的鲁棒性,因为实际的人体目标可能出现的各种不同的场合,检测器,必须对光照不太敏感才会有好的效果。2)利用一阶微分计算图像梯度图像平滑对于灰度图像,一般为了去除噪点,所以会先利 阅读全文
posted @ 2014-03-12 20:36 jianguo_wang 阅读(9990) 评论(0) 推荐(1)
摘要:重新取样将在您缩放图片时更改图像数据的数量。当缩减像素取样(减少像素的数量)时,将从图像中删除一些信息。当向上重新取样(增加像素的数量或增加像素取样)时,将添加新的像素。可以指定插值算法来确定如何添加或删除像素。1. 最近相邻插值算法/最近邻法最近相邻插值算法(NearestNeighbour Interpolation)一种速度快但精度低的图像像素模拟方法。该法针对于二维图像 “取待采样点周围4个相邻像素点中距离最近的 1个邻点的灰度值作为该点的灰度值”如图(1)。该方法用于包含未消除锯齿边缘的插图,以保留硬边缘并生成较小的文件。但是,缩放图片时,缺少的像素通过直接使用与之最接近的原有像素的 阅读全文
posted @ 2014-03-12 19:40 jianguo_wang 阅读(11774) 评论(0) 推荐(0)
摘要:RGB、Lab、YUV、HSI、HSV等颜色空间的区别RGB颜色空间RGB(red,green,blue)颜色空间最常用的用途就是显示器系统,彩色阴极射线管,彩色光栅图形的显示器 都使用R、G、B数值来驱动R、G、B 电子枪发射电子,并分别激发荧光屏上的R、G、B三种颜色的荧光粉 发出不同亮度的光线,并通过相加混合产生各种颜色;扫描仪也是通过吸收原稿经反射或透射而发送来 的光线中的R、G、B成分,并用它来表示原稿的颜色。RGB色彩空间称为与设备相关的色彩空间,因为不同 的扫描仪扫描同一幅图像,会得到不同色彩的图像数据;不同型号的显示器显示同一幅图像,也会有不同 的色彩显示结果。显示器和扫描仪使 阅读全文
posted @ 2014-03-12 17:09 jianguo_wang 阅读(2327) 评论(0) 推荐(0)
摘要:图像金字塔被广泛应用于各种视觉应用中。图像金字塔是一个图像集合,集合中图像都源于同一个原始图像,而且是通过对原始图像连续降采样获得,直到达到某个中止条件才停止降采样。(当然,降为一个像素肯定是中止条件) --学习OpenCV中文版PyrDown图像的下采样void cvPyrDown( const CvArr* src, CvArr* dst, int filter=CV_GAUSSIAN_5x5 );src输入图像.dst输出图像, 宽度和高度应是输入图像的一半 ,传入前必须已经完成初始化filter卷积滤波器的类型,目前仅支持 CV_GAUSSIAN_5x5函数 cvPyrDown 使.. 阅读全文
posted @ 2014-03-12 15:22 jianguo_wang 阅读(269) 评论(0) 推荐(0)
摘要:图像的算术运算Mat类把很多算数操作符都进行了重载,让它们来符合矩阵的一些运算,如果+、-、点乘等。下面我们来看看用位操作和基本算术运算来完成colorReduce程序,它更简单,更高效。将256种灰度阶降到64位其实是抛弃了二进制最后面的4位,所以我们可以用位操作来做这一步处理。首先我们计算2^8降到2^n中的n:int n=static_cast(log(static_cast(div))/log(2.0));然后可以得到maskmask=0xFF planes;// 将image分为三个通道图像存储在planes中split(image,planes);planes[0]+=image2 阅读全文
posted @ 2014-03-11 15:41 jianguo_wang 阅读(298) 评论(0) 推荐(0)
摘要:图像的邻域操作很多时候,我们对图像处理时,要考虑它的邻域,比如3*3是我们常用的,这在图像滤波、去噪中最为常见,下面我们介绍如果在一次图像遍历过程中进行邻域的运算。下面我们进行一个简单的滤波操作,滤波算子为[0 –1 0;-1 5 –1;0 –1 0]。它可以让图像变得尖锐,而边缘更加突出。核心公式即:sharp(i.j)=5*image(i,j)-image(i-1,j)-image(i+1,j)-image(i,j-1)-image(i,j+1)。void ImgFilter2d(const Mat &image,Mat& result){ result.create(im 阅读全文
posted @ 2014-03-11 15:29 jianguo_wang 阅读(1227) 评论(0) 推荐(1)
摘要:遍历图像的4种方式一、at(i,j)Mat类提供了一个at的方法用于取得图像上的点,它是一个模板函数,可以取到任何类型的图像上的点。下面我们通过一个图像处理中的实际来说明它的用法。在实际应用中,我们很多时候需要对图像降色彩,因为256*256*256实在太多了,在图像颜色聚类或彩色直方图时,我们需要用一些代表性的颜色代替丰富的色彩空间,我们的思路是将每个通道的256种颜色用64种代替,即将原来256种颜色划分64个颜色段,每个颜色段取中间的颜色值作为代表色。void colorReduce(Mat& image,int div){ for(int i=0;i(i,j)[0]=image 阅读全文
posted @ 2014-03-11 15:16 jianguo_wang 阅读(377) 评论(0) 推荐(0)