图像增强

数字图像处理介绍

荒凉一梦 提交于 2020-03-21 09:29:41
3 月,跳不动了?>>> 原创不易,转载请附地址: https://my.oschina.net/ffintell/blog/3207641 1 什么是数字图像 一幅图像可定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,而任何一对空间坐标(x,y)处的幅值f称为图像在该点处的强度或灰度。当x,y和灰度值f是有限的离散数值时,我们称该图像为数字图像。数字图像处理是指借助于数字计算机来处理数字图像。 注意:数字图像是由有限数量的元素组成的,每个元素都有一个特定的位置和幅值,这些元素称为像素。 数字图像处理方法的重要性源于两个主要应用领域: 改善图示信息以便人们解释;为存储、传输和表示而对图像数据进行处理,以便于机器自动理解 。 数字图像有三种典型处理:低级、中级、高级 低级:输入图像输出图像。例:图像降噪预处理、对比度增强、图像锐化等。 中级:输入图像输出特征。例:图像分割减少描述、输出边缘轮廓、物体的HOG特征,LAB特征等。 高级:输入图像,涉及“理解”已识别目标的总体,在连续统一体的远端执行与视觉相关的功能。例:行人识别等。 从图像处理到计算机视觉是一个连续统一体。 2 数字图像处理方向领域 图像增强: 图像增强和复原的目的是为了提高图像的质量,如去除噪声,提高图像的清晰度等。图像增强不考虑图像降质的原因,突出图像中所感兴趣的部分。如强化图像高频分量

[ DLPytorch ] 文本分类&图像增强

不羁岁月 提交于 2020-02-25 20:59:16
图像增强 图像增广(image augmentation)技术通过对训练图像做一系列随机改变,来产生相似但又不同的训练样本,从而扩大训练数据集的规模。图像增广的另一种解释是,随机改变训练样本可以降低模型对某些属性的依赖,从而提高模型的泛化能力。例如,我们可以对图像进行不同方式的裁剪,使感兴趣的物体出现在不同位置,从而减轻模型对物体出现位置的依赖性。我们也可以调整亮度、色彩等因素来降低模型对色彩的敏感度。可以说,在当年AlexNet的成功中,图像增广技术功不可没。本节我们将讨论这个在计算机视觉里被广泛使用的技术。 常用的图像增广方法 翻转和裁剪 左右翻转图像通常不改变物体的类别。它是最早也是最广泛使用的一种图像增广方法。下面我们通过torchvision.transforms模块创建RandomHorizontalFlip实例来实现一半概率的图像水平(左右)翻转。 上下翻转不如左右翻转通用。但是至少对于样例图像,上下翻转不会造成识别障碍。下面我们创建RandomVerticalFlip实例来实现一半概率的图像垂直(上下)翻转。 变化颜色 另一类增广方法是变化颜色。我们可以从4个方面改变图像的颜色:亮度(brightness)、对比度(contrast)、饱和度(saturation)和色调(hue)。我们也可以随机变化图像的色调。类似地,我们也可以随机变化图像的对比度。

图像处理的傅里叶变换理解

时间秒杀一切 提交于 2020-02-11 22:50:49
傅立叶变换在图像处理中有非常非常的作用。因为不仅傅立叶分析涉及图像处理的很多方面,傅立叶的改进算法, 比如离散余弦变换,gabor与小波在图像处理中也有重要的分量。 印象中,傅立叶变换在图像处理以下几个话题都有重要作用: 1.图像增强与图像去噪 绝大部分噪音都是图像的高频分量,通过低通滤波器来滤除高频——噪声; 边缘也是图像的高频分量,可以通过添加高频分量来增强原始图像的边缘; 2.图像分割之边缘检测 提取图像高频分量 3.图像特征提取: 形状特征:傅里叶描述子 纹理特征:直接通过傅里叶系数来计算纹理特征 其他特征:将提取的特征值进行傅里叶变换来使特征具有平移、伸缩、旋转不变性 4.图像压缩 可以直接通过傅里叶系数来压缩数据;常用的离散余弦变换是傅立叶变换的实变换; 傅立叶变换 傅里叶变换是将时域信号分解为不同频率的正弦信号或余弦函数叠加之和。连续情况下要求原始信号在一个周期内满足绝对可积条件。离散情况下,傅里叶变换一定存在。冈萨雷斯版<图像处理>里面的解释非常形象:一个恰当的比喻是将傅里叶变换比作一个玻璃棱镜。棱镜是可以将光分解为不同颜色的物理仪器,每个成分的颜色由波长(或频率)来决定。傅里叶变换可以看作是数学上的棱镜,将函数基于频率分解为不同的成分。当我们考虑光时,讨论它的光谱或频率谱。同样,傅立叶变换使我们能通过频率成分来分析一个函数。 傅立叶变换有很多优良的性质。比如线性

图像增强之空间域锐化

微笑、不失礼 提交于 2020-02-08 00:28:16
1 、图像锐化理论 图像锐化的目的是使图像变得清晰起来,锐化主要用于增强图像的灰度跳变部分,这一点与图像平滑对灰度跳变的抑制正好相反。锐化提高图像的高频分量,增加灰度反差增强图像的边缘和轮廓,以便后期图像识别。 在图像增强过程中,常用平滑算法来消除噪声,平滑属于低通滤波,图像的能量主要集中在低频部分,噪声所在频段主要在高频部分,同时图像的边缘也集中在高频部分,这意味着图像平滑后,高频被衰减轮廓会出现模糊。图像锐化就是为了减少这种现象,通过高通滤波使图像边缘和轮廓变得清晰。 2 、一阶微分图像增强--梯度算子 其中: 梯度的方向就是函数 f(x,y) 最大变化率的方向。梯度的幅值作为最大变化率大小的度量,值为: 离散的二维函数 f(i,j) ,可以用有限差分作为梯度的一个近似值。 为了简化计算,可以用绝对值来近似。 | ▽ f(i,j)|= |f(i+1,j)-f(i,j)| +|f(i,j+1)-f(i,j)| 2.1 Robert 算子 | ▽ f(i,j)|= |f(i+1,j+1)-f(i,j)| +|f(i,j+1)-f(i+1,j)| 上面算式采用对角相差的差分法来代替微分,写为滤波模板形式为: 其中 w1 对接近 45° 的边缘有较强响应, w2 对接近 -45° 的边缘有较强响应。 imgPath = 'E:\opencv_pic\src_pic\pic6.bmp';

图像增强之空间域滤波

て烟熏妆下的殇ゞ 提交于 2020-02-06 00:09:01
1 、为什么进行图像增强 图像增强是指增强图像中某些特征,同时削弱或去除某些不需要的信息,即为了某种应用而去改善图像的质量,消除噪声,显现那些被模糊了的细节或简单的突出一副图像中感兴趣的特征。所以图像增强并不是增强图像的原始信息,而是只针对某一特征以提高某种信息的辨别能力,图像增强需要根据需求采用特定的方法,当增强一些信息时另外一些信息必定被损失,不存在一种通用的方法,必须根据需求决定保留哪些信息丢弃哪些信息。 图像增强技术基本上可以分为两类:空间域增强、频域增强。 2 、空间域滤波理论 2.1定义 空间域滤波就是在图像平面上对像素进行操作。 空间域滤波大体分为两类:平滑、锐化。 平滑滤波:模糊处理,用于减小噪声,实际上是低通滤波,典型的滤波器是高斯滤波。 锐化滤波:提取边缘突出边缘及细节、弥补平滑滤波造成的边缘模糊。实际上是高通滤波。 空间域处理可由下式表示: g(x,y)=T[f(x,y)] 式中,f(x,y)是输入图像,g(x,y)是处理后的图像,T是在点(x,y)的邻域上定义的关于f的一种算子,算子可应用于单幅图像或图像集合。 2.2空间域滤波和邻域处理 1)空间滤波器由一个邻域(通常是一个较小的矩形)和对该邻域所包围图像像素执行的预定义操作组成。对预定义的点(x,y)为中心的领域内的像素进行计算。 2)滤波产生一个新像素,新像素的坐标等于邻域中心的坐标(x,y)

图像增强算法

旧时模样 提交于 2020-01-25 09:33:35
图像增强 图像增强算法概述 图像增强的目的是改善图像的视觉效果或使图像更适合于人或机器的分析处理。通过图像增强可以减少图像噪声,提高目标与背景的对比度,亦可以强调或抑制图像中的某些细节。例如,消除照片中的划痕,改善光照不均匀的图像,突出目标的边缘等。根据处理的空间可以将图像增强分为空域法和频域法,前者直接在图像的空间域(或图像空间)中对像素进行处理,后者在图像的变换域(即频域)内简介处理,然后经逆变换获得增强图像。空域增强可以分为点处理和区处理,频域增强可以分为低通滤波,高通滤波,带通滤波和同态滤波。本文主要介绍的是空域法。 直方图均衡化和规定化 直方图均衡化基本思想 直方图均衡化的基本思想是把原始图像的直方图变换为均匀分布的形式,从而增强图像灰度的变化范围,以达到增强图像对比度的效果。经过均衡化处理的图像,其灰度级出现的概率相同,此时图像的熵最大,图像所包含的信息量最大。 均衡化的详细原理 直方图规定化基本思想 直方图均衡化能够增强整个图像的对比度,但增强效果不易控制,处理得到的是全局均衡化的直方图。然后实际应用中可能希望将直方图变换为某个特定的形状(规定的直方图),从而有选择地增强某个灰度范围内的对比度,这种方法就称为直方图规定化。直方图规定化可以借助直方图均衡化来实现。 任意两幅灰度图像,显示它们的直方图,并将其中一幅的直方图传递给另一个图像,显示传递后的图像及其直方图。

【红外DDE算法】聊聊红外图像增强算法的历史进程(第一回)

旧巷老猫 提交于 2020-01-23 13:41:43
宽动态红外图像增强算法综述 回顾过去 带你回顾宽动态红外图像增强算法的历史进程,历来学者的一步步革命(新的算法框架提出),一步步改革(改进优化),从简单粗暴到细致全面。 正所谓是:改革没有完成时,只有进行时。没有完美的算法,也没有最好的算法,只有更好更优秀的算法。 展望未来 以现在看90年代的算法,那时候的算法是有点粗糙,但是正是在这一点点的积累上,才有了现在较之优秀完美的算法。 正所谓是:站在巨人的肩膀,我们看得更远,不积跬步无以至千里。 目录 为什么需要该算法? 摘要 主要的三类算法思路大致介绍 第一类:基于映射的宽动态图像增强算法 第二类:基于图像分层的宽动态图像增强算法 第三类:基于梯度域的宽动态图像增强算法 三类算法的对比与优缺点分析 1.关于为什么需要宽动态红外图像增强算法? 详见我之前的文章《数字细节增强算法的缘由与效果(我对FLIR文档详解)》 https://blog.csdn.net/hahahahhahha/article/details/102978112. 2.摘要: 从三类算法开始介绍,基于映射的宽动态图像增强算法,基于图像分层的宽动态图像增强算法,基于梯度域的宽动态图像增强算法。 3.主要的三类算法思路大致介绍 早期的算法(大概1999年之前),主要是基于映射的。实现简单,复杂度低,但是细节不够凸显。 为此,学者提出了基于图像分层的算法

OpenCV--Python 图像增强

喜你入骨 提交于 2020-01-19 04:01:43
图像增强主要解决由于图像的灰度级范围较小造成的对比度较低的问题,目的就是将输出图像的灰度级放大到指定的程度,使得图像中的细节看起来增加清晰。对比度增强有几种常用的方法,如线性变换、分段线性变换、伽马变换、直方图正规化、直方图均衡化、局部自适应直方图均衡化等。 1.灰度直方图 在讲解图像增强的方法之前先来认识一下灰度直方图,灰度直方图是图像灰度级的函数,用来描述每个灰度级在图像矩阵中的像素个数或者占有率。接下来使用程序实现直方图: import cv2 as cv import numpy as np import matplotlib . pyplot as plt def calcGrayHist ( I ) : # 计算灰度直方图 h , w = I . shape [ : 2 ] grayHist = np . zeros ( [ 256 ] , np . uint64 ) for i in range ( h ) : for j in range ( w ) : grayHist [ I [ i ] [ j ] ] += 1 return grayHist img = cv . imread ( "../testImages/4/img1.jpg" , 0 ) grayHist = calcGrayHist ( img ) x = np . arange ( 256 ) #

OpenCV图像增强算法实现(直方图均衡化、拉普拉斯、Log、Gamma)

匆匆过客 提交于 2019-12-16 16:22:06
1. 基于直方图均衡化的图像增强 直方图均衡化是通过调整图像的灰阶分布,使得在0~255灰阶上的分布更加均衡,提高了图像的对比度,达到改善图像主观视觉效果的目的。对比度较低的图像适合使用直方图均衡化方法来增强图像细节。 彩色图像的直方图均衡化实现: # include <opencv2/highgui/highgui.hpp> # include <opencv2/imgproc/imgproc.hpp> # include <iostream> using namespace cv; int main ( int argc, char *argv[]) { Mat image = imread( "Test.jpg" , 1 ); if (image.empty()) { std :: cout << "打开图片失败,请检查" << std :: endl ; return -1 ; } imshow( "原图像" , image); Mat imageRGB[ 3 ]; split(image, imageRGB); for ( int i = 0 ; i < 3 ; i++) { equalizeHist(imageRGB[i], imageRGB[i]); } merge(imageRGB, 3 , image); imshow( "直方图均衡化图像增强效果" ,

四、图像增强系列------线性增强

你。 提交于 2019-12-10 03:48:34
文章目录 线性增强基本算法 python实现线性增强基本算法 效果图如下 分段线性变换 python实现分段线性变换 分段线性变换效果图 线性增强统计量算法 线性增强基本算法 python实现线性增强基本算法 import cv2 as cv import numpy as np import matplotlib . pyplot as plt #### 线性增强基本算法 # 绘制直方图函数 def grayHist ( img ) : h , w = img . shape [ : 2 ] pixelSequence = img . reshape ( [ h * w , ] ) numberBins = 256 histogram , bins , patch = plt . hist ( pixelSequence , numberBins , facecolor = 'black' , histtype = 'bar' ) plt . xlabel ( "gray label" ) plt . ylabel ( "number of pixels" ) plt . axis ( [ 0 , 255 , 0 , np . max ( histogram ) ] ) plt . show ( ) img = cv . imread ( "peng.png" , 0 ) ##