图像处理
S大幕
小学僧
展开
-
opencv-python 获取 sift 特征值
# -*- coding: utf-8 -*-import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imread("./img/person.jpg")img1 = img.copy()img1 = cv2.cvtColor(img1,cv2.COLOR_BGR2RGB)gray = cv2...原创 2019-12-16 20:46:06 · 531 阅读 · 0 评论 -
【OpenCV图像处理】十三、图像的距离变换
图像的距离变换实现了像素与图像区域的距离变换,使得最后生成的图像在该自己元素位置处的像素为0,临近的北京的像素具有较小的值,且随着距离的增大它的的数值也就越大。对于距离图像来说,图像中的每个像素的灰度值为该像素与距离其最近的背景像素间的距离,也就是说,给每个像素赋值为离它最近的背景像素点与其距离,一幅二值图像的距离变换可以提供每个像素到最近的非零像素的距离。距离变换的一般步骤如下:1.将输原创 2017-04-02 15:47:39 · 10596 阅读 · 2 评论 -
【OpenCV图像处理】十四、图像金字塔
首先简单介绍一下图像金字塔,下面这段内容来自百科图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构。一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。图像金字塔主要用于图像的分割,是一种用多分原创 2017-04-02 20:13:33 · 1937 阅读 · 0 评论 -
【OpenCV图像处理】十八、数学形态学方法(上)
数学形态学是以形态表示为基础实现图像分析的数学工具,使用具有一定形态的结构元素去度量和提取图像中对应形状,以此来达到对图像分析和识别的目的。形态学图像处理的数学基础是集合论,主要的运算包括腐蚀、膨胀、开运算、闭运算四种。数学形态学方法进行图像处理的基本思想是选择具有一定尺寸和形状的结构元素度量并提取图像中相关形状节后的图像分量,以此来达到对图像分析和识别的目的。需要注意的是,数学形态学方法可以原创 2017-05-03 10:11:50 · 10749 阅读 · 0 评论 -
【OpenCV图像处理】十七、图像的导向滤波
导向图滤波是一种图像滤波技术,通过一张引导图G,对目标图像P(输入图像)进行滤波处理,使得最后的输出图像大体上与目标图像P相似,但是纹理部分与引导图G相似。其典型应用有两个:保边图像平滑,抠图。导向滤波是由何凯明等人在2010年发表在ECCV的文章“Guided Image Filtering”文中提到的,后来陆续发表了改进算法快速导向滤波的实现。导向滤波不仅能够实现双边滤波的边缘平滑,而且在...原创 2017-04-21 08:53:35 · 4944 阅读 · 4 评论 -
【OpenCV图像处理】二十二、图像边缘检测(上)
→图像边缘检测的目的是检测邻域内灰度明显变化的像素,常用一阶差分和二阶差分来进行边缘检测→数字图像中的边缘是由邻域内灰度值明显变化的像素构成,边缘检测主要是图像灰度的度量检测和定位→图像的边缘有方向和幅值两个属性,沿边缘方向像素灰度值变化平缓或不发生变化,而垂直于边缘方向像素灰度值变化剧烈→需要理解的是,边缘是灰度值变化的产物,可以利用差分来检测这种不连续性,边缘检测方法大致可以分为两原创 2017-05-24 08:03:42 · 5767 阅读 · 0 评论 -
【OpenCV图像处理】十九、数学形态学方法(中)
1.击中击不中运算击中击不中(hit or miss)定义在交集为空集的两个结构元素的膨胀和腐蚀运算的基础上。设B =(B1,B2)表示结构元素对,且B1 ∩ B2 = ∅则结构元素B对集合A的击中积补种运算,记做 定义为:→运算过程为:(→当且仅当B1平移某一z值包含在集合A的内部,也就是B1击中A且B2平移同一z值包含在集合A的外部(也就是B2击不中A),这个条件同原创 2017-05-08 19:57:17 · 3630 阅读 · 0 评论 -
【OpenCV图像处理】二十一、形态学滤波角点的提取
形态学边缘检测的原理是利用膨胀与腐蚀变化区域特征来完成边缘检测,膨胀操作是将目标物体向周围邻域进行扩展,而腐蚀操作则是将目标物体像邻域进行收缩因此图像的边缘恰好反映在形态学腐蚀与膨胀中变化的区域,因此只需要将膨胀得到的结果与腐蚀得到的结果图进行做差运算,就可以得到物体的形态学边缘。在OpenCV中具体的实现方法可以使用morphologyEX()函数中的形态学梯度运算直接得到,具体实现代码原创 2017-05-17 11:10:42 · 884 阅读 · 0 评论 -
【OpenCV图像处理】二十、数学形态学方法(下)
本篇主要讲解数学形态学方法在灰度图像中的应用。因此,在本文中,f(x,y)不再表示二值图像,而是表示灰度图像,b(x,y)表示结构元素,其中(x,y)表示像素在图像中的坐标。→在灰度图像形态学中,将灰度图像f(x,y)和结构元素b(x,y)看成是空间坐标(x,y)的二维函数。1.灰度膨胀与腐蚀→灰度膨胀和腐蚀是灰度图像形态学中的2个基本运算,其他的灰度图像形态学操作都是建立在这两种原创 2017-05-10 16:55:58 · 3965 阅读 · 0 评论 -
【OpenCV图像处理】二十三、图像边缘检测(下)
(1)Prewitt边缘检测算子→prewitt边缘检测算子是另一种常用的一阶边缘检测算子,这个算子对于噪声有抑制的作用。Prewittt边缘检测的原理和Sobel边缘检测类似,都是在图像空间利用两个方向模板与图像进行邻域卷积来完成的,分别对水平和垂直方向边缘进行检测。对比其他边缘检测算子,Prewitt算子对边缘的定位精度不如Roberts算子,实现方法与Sobel算子类似,但是实现功能原创 2017-05-30 17:32:07 · 4973 阅读 · 0 评论 -
【OpenCV图像处理】二十四、霍夫(Hough)检测
霍夫变换:通常图像中直线对应重要的边缘信息,在计算机视觉中直线检测是一项具有重要意义的技术。由于直线具有特定的特征,因此提取方法也不同于一般的边缘检测方法。一、霍夫变换直线检测Hough变换直线检测是一种参数空间提取直线的方法,它将直线上点的坐标变换到过点的系数域,利用了共线点与直线相交之间的关系,将直线检测问题转换为技术问题。这种方法的主要优点是受直线中间隙和噪声的影响较小。主要原创 2017-06-02 22:04:32 · 2829 阅读 · 0 评论 -
【OpenCV图像处理】二十五、角点检测
博客参考 朱伟 等编著的《OpenCV图像处理编程实例》======================================================================================在很多应用场景中,图像像素区域的兴趣点区域对于目标检测、目标跟踪有着重要的意义。当兴趣点周围存在长方形区域时,最容易形成角点。对于兴趣点检测,角点反映的是图像中...原创 2017-06-22 10:23:39 · 3119 阅读 · 2 评论 -
【OpenCV图像处理】八、图像的掩码操作
本篇内容参考 朱伟 主编 OpenCV图像处理编程实例图像的掩码操作是指通过掩码核算子重新计算图像中各个像素的值,掩码核子刻画淋浴像素点对新像素值的影响程度,同时根据掩码算子中权重因子对原像素点进行加权平均。图像掩码操作常常用于图像的平滑,边缘检测和特征分析等不同的领域。在OpenCV中常用的计算图像掩码的操作有下面两种。1.基于像素邻域遍历对于原图像数据f(x,y),卷积核算子为转载 2017-03-03 18:57:19 · 11378 阅读 · 0 评论 -
【OpenCV图像处理】十六、图像空域滤波(下)
空域滤波的后半部分主要讲图像的锐化相关操作。图像锐化:由于成像机理和成像设备的限制,尤其是对于一些专用成像设备,如医学成像,遥感成像和视频捕获等等,所成图像可能会变得模糊。图像锐化的作用就是增强图像的边缘和细节,减弱或清除灰度变化缓慢的区域,如边缘增强、边缘检测(提取)等。然而,图像锐化在增强图像灰度变化的同事,也放大了噪声。查分算子的响应程度和图像在这一点处的灰度值的突变有关,因此,图像原创 2017-04-07 10:48:28 · 3065 阅读 · 1 评论 -
【OpenCV图像处理】五、图像的几何变换(下)
5.1 图像的缩放变换图像的缩放指的是将图像的尺寸变小或变大的过程,也就是减少或增加原图像数据的像素个数。简单来说,就是通过增加或删除像素点来改变图像的尺寸。当图像缩小时,图像会变得更加清晰,当图像放大时,图像的质量会有所下降,因此需要进行插值处理。在图像缩放中常常会用到两个概念,也就是水平缩放系数和垂直缩放系数,水平缩放系数控制水平像素的缩放比例,垂直缩放系数控制垂直方向上像素的缩放比例原创 2017-02-22 20:41:41 · 4798 阅读 · 1 评论 -
【OpenCV图像处理】二、图像的二值化操作
图像的逻辑运算就是将两幅图像的对应像素进行逻辑运算。逻辑运算主要包括 与(AND)或(OR)及补运算。要对灰度图像进行逻辑运算,就要首先对图像进行二值化处理。二值化的公式如下:我们对灰度图像进行二值化处理,可以突出一定范围的信息,但是对于A和B的不同取值,二值化的效果会有很大的不同。下面使用OpenCV和C++实现图像的二值化过程。//对一幅图像进行二值化#incl...原创 2017-02-19 14:36:11 · 69831 阅读 · 0 评论 -
【OpenCV图像处理】三、图像的逻辑运算
图像的逻辑运算就是将两幅图像的对应像素进行逻辑运算。逻辑运算主要包括 与(AND)或(OR)及补运算。要对灰度图像进行逻辑运算,就要首先对图像进行二值化处理。图像的二值化处理在上一篇中已经叙述完毕,这篇主要写图像的与,或和补三种逻辑运算。1.与运算图像的与运算就是将两幅二值图像的对应像素进行逻辑与操作,如果处理的图像不是二值图像,那么要先进行二值化处理。可以用来求得两幅尺寸原创 2017-02-19 15:39:03 · 10733 阅读 · 1 评论 -
【OpenCV图像处理】一、图像相加、相减、相乘与相除的实现
看完了数字图像处理后,从头开始使用opencv进行相关内容的实现,使用的环境是VS2013+OpenCV2.4.91.图像的加运算加运算就是两幅图像对应像素的灰度值或彩色分量进行相加。主要有两种用途,一种是消除图像的随机噪声,主要做是讲同一场景的图像进行相加后再取平均;另一种是用来做特效,把多幅图像叠加在一起,再进一步进行处理。对于灰度图像,因为只有单通道,所以直接进行相应位置的像素加原创 2017-02-18 15:24:44 · 46179 阅读 · 10 评论 -
【OpenCV图像处理】六、图像的傅里叶变换
众所周知,离散傅里叶变换(DFT)是数字信号处理的内容,在数字信号处理这门课程中,DFT处理的大多是一维的离散信号,它也是指傅里叶变换在时域和频域上都呈现出离散的形式。而在实际应用中,通常都是用FFT来进行高效的DFT计算。而对于一幅图像,它是二维的信息,且存在空域中,对它进行DFT变换,可以理解为利用DFT处理二维的信号。在对图片进行了二维DFT后,变换的结果需要使用实数图像加虚数图像或是幅原创 2017-02-25 21:52:35 · 3921 阅读 · 1 评论 -
【OpenCV图像处理】七、图像的DCT
DCT变换,也就是离散余弦变换(Discrete Cosine Transform)是图像频域变换的一种,实际上可以看成是一种空域的低通滤波器,DCT也可以看做是傅里叶变换的一种特殊情况。在傅里叶级数中,如果被展开的函数是实偶函数,那么在傅里叶级数中则只包含余弦项,再将其离散化,由此便可导出离散余弦变化。目前,离散余弦变换以及它的改进算法已经成为广泛应用于信号处理和图像处理,特别是用于图像压缩原创 2017-03-03 09:01:52 · 17134 阅读 · 4 评论 -
【OpenCV图像处理】十、图像的直方图及相关处理(上)
直方图是数字图像处理中的一个重要的基础工具,在讨论各种空域图像处理之前,首先要十分清楚直方图的概念以及它的表示的意义。直方图提供了图像的统计信息,为了理解多种空域增强技术的内涵提供了铺垫。此外,利用直方图操作也可以直接用于图像增强。目前大多数数字照相机都有显示所拍摄照片直方图的功能,直方图可以显示出整张照片的灰度分布情况,可以根据直方图所示的灰度分布判断图像曝光是否恰当,有助于拍摄前的各种参数原创 2017-03-21 19:56:13 · 9095 阅读 · 0 评论 -
【OpenCV图像处理】十一、图像的直方图与相关处理(中)
本篇中主要介绍数字图像处理中直方图的应用以及编程实现1.显示图像的灰度直方图OpenCV中提供了一个简单的计算数组集(通常上是图像或是分割后的通道)的直方图函数calcHist,首先简单介绍一下这个函数:函数的声明为:void calcHist( const Mat* images, int nimages,const int* channels, InputArray mas原创 2017-03-25 09:28:23 · 1785 阅读 · 0 评论 -
【OpenCV图像处理】十二、图像的直方图与相关处理(下)
1.直方图变换的累积方法利用像素累积的方法进行直方图变换的大致过程如下:(1).将源图像转换为灰度图,并计算图像的灰度直方图。(2).奖励映射表,对直方图进行像素累计。(3).根据映射表进行元素映射得到最终的直方图变换。相应的程序如下://利用统计像素进行直方图变换 #include #include #include using namespace cv;原创 2017-03-25 22:41:13 · 1101 阅读 · 0 评论 -
【OpenCV图像处理】九、常见的图像灰度变换
1.灰度线性变换图像的灰度线性变换是图像灰度变换的一种,图像的灰度变换通过建立灰度映射来调整源图像的灰度,从而达到图像增强的目的。灰度映射通常是用灰度变换曲线来进行表示。通常来说,它是将图像的像素值通过指定的线性函数进行变换,以此来增强或者来减弱图像的灰度,灰度线性变换的函数就是常见的线性函数。g(x, y) = k · f(x, y) + d设源图像的灰度值为x,则进行灰度线性变换后原创 2017-03-13 16:16:53 · 23510 阅读 · 12 评论 -
【OpenCV图像处理】十五、图像空域滤波(上)
1.空域滤波介绍空域滤波是一种邻域处理方法,通过直接在图像空间中对邻域内像素进行处理,达到平滑或锐化图像的作用。空域滤波是图像处理领域中广泛使用的主要工具。空域滤波主要可以分为线性滤波和非线性滤波,其中,线性滤波和频域滤波存在一一对应的关系。但是,空域滤波可以用于非线性滤波,但是频域滤波不能用于非线性滤波。从根源上讲,滤波这一词语来自于频域,信号处理中频域滤波指的是允许或者限制一定的频率成原创 2017-04-06 10:32:24 · 16269 阅读 · 1 评论 -
【OpenCV图像处理】四、图像的几何变换(上)
图像的几何变换是指在不改变图像像素的前提下对图像像素进行空间几何变换。常见的变换有距离变换,坐标映射,平移,镜像,旋转,缩放和仿射变换等等。也就是说,图像的几何变换就是建立一种源图像像素与变换后的图像像素之间的映射关系。也正是通过这种映射关系可以知道原图像任意像素点变换后的坐标,或者是变换后的图像在原图像的坐标位置等。用简单的数学公式可以表示为其中,x,y代表输出图像像素的原创 2017-02-20 09:07:14 · 4285 阅读 · 2 评论