自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xinzhihen的博客

程序小白

  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

原创 25 OpenCV直方图反向投影calcBackProject

一、反向投影反向投影是反映直方图模型在目标图像中的分布情况,简单点说就是用直方图模型去目标图像中寻找是否有相似的对象。通常用HSV色彩空间的HS两个通道直方图模型建立直方图模型计算待测图像直方图并映射到模型中从模型反向计算生成图像二、calcBackProjectvoid cv::calcBackProject ( const Mat * images,...

2020-02-07 10:47:43 188

原创 24 OpenCV直方图比较compareHist

一、直方图比较对输入的两张图像计算得到直方图H1与H2,归一化到相同的尺度空间,然后可以通过计算H1与H2的之间的距离得到两个直方图的相似程度,进而比较图像本身的相似程度。Opencv提供的比较方法有四种Correlation 相关性比较 -(计算结果范围为 -1到1 -1很不相关,1完全一样 )Chi-Square 卡方比较 -(计算结果越接近0,两个直方图越相似)Intersec...

2020-02-06 17:30:25 772

原创 23 OpenCV直方图计算calcHist

一、直方图图像直方图是基于图像像素值,其实对图像梯度、每个像素的角度、等一切图像的属性值,我们都可以建立直方图。直方图最常见的几个属性:dims: 需要统计的特征的数据bins:每个特征空间子区段的数据range: 每个特征空间的取值范围在opencv中提供了calcHist()函数计算图像的直方图,计算完成后可以采用前opencv中的绘图函数如rectangle、line()等绘制...

2020-02-06 17:13:59 385

原创 22 OpenCV直方图均衡化equalizeHist

一、图像直方图Histogram图像直方图,是指对整个图像像在灰度范围内的像素值(0~255)统计出现频率次数,据此生成的直方图,称为图像直方图-直方图。直方图反映了图像灰度的分布情况,是图像的统计学特征。二、直方图均衡化直方图均衡化是一种提高图像对比度的方法,拉伸图像灰度值范围,让图像更均衡。对于图像的特征提取是非常有用的直方图均衡化是通过使用累积函数对灰度值进行“调整”以...

2020-02-06 16:57:44 552

原创 21 OpenCV像素重映射remap

一、像素重映射重映射就是把一个图像中一个位置的像素放置到另一个图片指定位置过程。为了完成重映射过程有必要获得一些插值作为非整数像素坐标,因为原图像与目标图像的像素坐标不是一一对应的。我们通过重映射来表达每个像素的位置(x, y):g(x, y)=f(h(x,y))这里g()是目标图像,f()是原图像,h(x,y)是作用于(x,y)的映射方法函数二、remapvoid cv::rema...

2020-02-06 16:21:57 231

原创 20 OpenCV霍夫圆变换HoughCircles

一、霍夫圆检测原理对直线来说, 一条直线能由参数极径极角 (r,θ) 表示.而对圆来说, 从平面坐标到极坐标转换需要三个参数, 也就是: ( xcenter , ycenter, r )。其中xcenter , ycenter 表示圆心,r 表示圆的半径。这就意味着需要大量的内存而且执行效率会很低,速度会很慢。霍夫圆检测对噪声比较敏感,所以首先要对图像做中值滤波为了提高效率,OpenC...

2020-02-06 15:27:58 445

原创 19 OpenCV霍夫直线变换HoughLines

一、

2020-02-06 15:00:05 468

原创 18 OpenCV之Canny边缘检测

一、Canny算子Canny边缘检测算法是John F. Canny于1986年开发出来的一个多级边缘检测算法,也被很多人认为是边缘检测的最优算法消除噪声:使用高斯平滑滤波器卷积降噪计算梯度幅值和方向梯度方向近似得到四个可能角度之一(一般0,45,90,135)非极大值抑制:这一步排除非边缘像素,仅仅保留了一些细线条(候选边缘)滞后阈值:最后一步,Canny使用了滞后...

2020-02-04 16:38:27 228

原创 17 OpenCV之Laplace算子

一、Laplace算子Sobel算子是基于在边缘部分,像素值会出现较大的变化,因此在边缘部分求取一阶导数可以得到极值点,而在一阶导数的极值位置,二阶导数为0。所以也可以利用这个特点来作为检测图像边缘的方法,但是二阶导数的0值不仅仅出现在边缘,它们也可能出现在无意义的位置,但我们可以过滤掉这些点。因为图像是二维的,需要在两个方向求导,opencv提供了Laplacian函数来实现,使用Laplac...

2020-02-04 16:23:58 530

原创 16 OpenCV之Soble算子

一、卷积应用-图像边缘提取图像的高频分量一般出现在像素值显著改变的地方,而高频分量的出现就容易勾画出图像的轮廓。在高等数学中我们知道函数变化剧烈其所对应的导数值越大(极大值),所以表示图像像素值改变最大的一个方法就是求出图像的导数。其梯度值剧烈的改变预示着图像中内容发生显著变化。假设我们有一张一维图像,图中灰度值的“跃升”表示边缘的存在,通过对函数进行一阶微分我们可以更加清晰的看到边缘“跃升...

2020-02-04 16:11:46 246

原创 15 OpenCV处理边缘copyMakeBorder

一、

2020-02-04 10:55:00 201

原创 14 OpenCV自定义线性滤波filter2D

一、卷积卷积是图像处理中的一个操作,是kernel在图像的每个像素上的操作,Kernel本质上一个固定大小的矩阵数组,其中心点称为锚点(anchor point)。利用卷积可以模糊图像、提取边缘、进行图像的锐化等。卷积运算:把kernel放到像素数组之上,求锚点周围覆盖的像素乘积之和(包括锚点),用来替换锚点覆盖下像素点值称为卷积处理二、常见算子Robert算子:可以用来寻找梯...

2020-02-04 10:24:15 390

原创 13 OpenCV基本阈值操作threshold

一、基本阈值操作opencv提供了threshold()函数对图像的阈值进行处理,threshold()共支持五种类型的阈值化方式,分别是阈值二值化、阈值二值化、截断、阈值取零和阈值反取零。阈值二值化 threshold binary阈值反二值化 threshold binary inverted截断 truncate阈值取零 threshold to zero阈值反取零 ...

2020-02-03 17:53:53 310

原创 12 OpenCV图像上采样pyrUp与下采样pyrDown

一、图像金字塔在进行数字图像处理时,我们可能会需要将某种尺寸的图像转换为其他尺寸的图像,这样会存在放大图像和缩小图像两种可能。一个图像金字塔是一系列图像的集合,所有图像来源于同一张原始图像,通过梯次向下采样获得,直到达到某个终止条件才停止采样。通常有两种类型的图像金字塔:高斯金字塔(Gaussian pyramid): 用来向下采样拉普拉斯金字塔(Laplacian pyramid):...

2020-02-03 17:18:30 558

原创 11 OpenCV 形态学操作之开运算、闭运算、形态学梯度、顶帽、黑帽

形态学的主要用途是获取物体拓扑和结果信息,它通过物体和结构元素的某些运算,得到物体更本质的形态,在图像处理中的主要应用有:利用形态学的基本运算对图像进行观察和处理,从而达到改善图像质量的目的描述和定义图像的各种几何参数和特征如面积、周长、连通、颗粒度、骨架和方向性通过腐蚀和膨胀两种基本的形态学操作实现开运算、闭运算、形态梯度、顶帽、黑帽五种形态学操作。一、开运算 open开运算是通...

2020-02-03 11:28:10 434

原创 10 OpenCV形态学操作之膨胀与腐蚀

一、形态学操作图像形态学操作 – 基于形状的一系列图像处理操作的合集,主要是基于集合论基础上的形态学数学形态学有四个基本操作:腐蚀、膨胀、开、闭膨胀与腐蚀是图像处理中最常用的形态学操作手段,主要功能有:消除噪声分割(isolate)出独立的图像元素,在图像中连接(join)相邻的元素寻找图像中的明显的极大值区域或极小值区域求出图像的梯度二、膨胀跟跟卷积操作类似,假设有...

2020-02-03 10:26:20 229

原创 09 OpenCV模糊图像2(中值滤波与双边滤波)

一、中值滤波统计排序滤波器中值滤波对椒盐噪声有很好的抑制作用二、双边滤波由于均值滤波是基于平均权重,故其无法克服边缘像素信息丢失缺陷高斯模糊克服了该缺陷,但由于没有考虑像素值的不同,无法完全避免高斯双边模糊是边缘保留的滤波方法,避免了边缘信息丢失,保留了图像轮廓不变三、相关API中值模糊medianBlur(Mat src,Mat dst,ksize); //...

2020-02-02 17:36:19 314

原创 08 OpenCV模糊图像1(均值模糊与高斯模糊)

一、模糊原理Smooth/Blur 是图像处理中最简单和常用的操作之一,使用该操作的原因之一是为了给图像预处理时降低噪声,其操作背后是数学的卷积运算,通常这些卷积算子都是线性操作,故又叫作线性滤波归一化盒子滤波(均值滤波)高斯滤波二、相关API均值模糊blur(Mat src,Mat dst,Size(xradius,yradius),Point(-1,-1));高斯...

2020-02-02 17:16:20 195

原创 07 OpenCV绘制形状与文字

一、cv::Point

2020-02-02 16:44:12 123

原创 06 OpenCV调整图像亮度与对比度

一、原理及相关APIdst = alpha*src + beta alpha > 0 控制图像对比度,beta是增益变量,控制图像亮度Mat new_img = Mat::zeros(img.size(),img.type()); 创建一张和原图像大小和类型一致的空白图像,像素值初始化为0saturate_cast<uchar>(value) 确保值范围在0~255之间...

2020-02-02 16:24:47 168

原创 05 OpenCV图像混合

一、图像线性混合 addWeightedaddWeighted(const CvArr *src1, double alpha, const CvArr *src2, double beta, double gamma, CvArr *dst)第一个参数为输入的源图像src1, 第二个参数为输入图像src1的系数值, 第三个参数为输入的源图像src2, 第四个参数为输入图像src2的系数...

2020-02-02 15:56:06 116

原创 04 OpenCV图像操作

一、读写图像imread 指定加载为灰度或者RGB图像imwrite 保存图像文件,类型由扩展名决定二、读取像素值读取GRAY通道图像的值uchar intensity = src.at<uchar>(row, col);uchar intensity = src.at<uchar>(Point(col, row));读取三通道图像的像素值...

2020-02-02 15:45:30 125

原创 03 OpenCV之Mat对象

一、Mat对象与IpIImage对象IpIImage是从2001年OpenCV发布之后就一直存在的,是C语言风格的数据结构,需要开发者自己分配与管理内存,对于较大的程序,若使用它容易导致内存泄露问题。Mat对象是OpenCV2.0之后引进的图像数据结构,自动分配内存且不存在内存泄露的问题,是面向对象的数据结构,它分为两个部分,头部与数据部分。二、Mat常用构造方法 Mat(); ...

2020-02-02 15:12:20 133

原创 02 OpenCV矩阵的掩膜操作

一、获取图像像素指针Mat.ptr(int i = 0) 能获取像素矩阵的指针,索引i表示第i行,从0开始计数const uchar* current = myImage.ptr(row) 能获取当前行指针current[col] 表示当前像素点P(row,col)二、像素范围处理saturate_cast<uchar>确保RGB值的范围在0~255之间 如satu...

2020-02-01 17:36:28 166

原创 01 OpenCV加载、显示、修改、保存图片

一、加载图像 imreadimread功能是加载图像文件为一个Mat对象,第一个参数表示图像文件名称,第二个参数表示加载的图像是什么类型,常见的如下:IMREAD_UNCHANGED (<0) 表示加载原图,不做任何改变IMREAD_GRAYSCALE (0) 表示把原图作为灰度图像加载进来IMREAD_COLOR (>0) 表示把原图作为RGB图像加载进来(opencv支...

2020-02-01 17:00:42 1665

算法导论第三版课后答案(中英文都有)

算法导论第三版(殷建平等译)第一到九章答案, 中英文都有! 有doc和pdf版,超详细!

2018-05-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除