像识别中,图像质量的好坏直接影响识别算法的设计与效果精度,那么除了能在算法上的优化外,预处理技术在整个项目中占有很重要的因素,然而人们往往忽略这一点。

图像预处理,将每一个文字图像分检出来交给识别模块识别,这一过程称为图像预处理。

图像预处理的主要目的是消除图像中无关的信息恢复有用的真实信息增强有关信息的可检测性和最大限度地简化数据从而改进特征抽取、图像分割、匹配和识别的可靠性。预处理过程一般有数字化、几何变换、归一化、*滑、复原和增强等步骤。

1.滤波:滤波(Wave filtering)是将信号中特定波段频率滤除的操作,是抑制和防止干扰的一项重要措施。ps:均值、中值、高斯滤波在一定程度上会影响图像的清晰度,清晰图像无需进行滤波,一般都是有明显的噪点时才进行滤波处理。

2.图像的归一化和直方图有相似性,在一定程度上可以将诡异哈理解为0-255的像素值变为0-1之间,缩小了其分配距离。ps:在目标与背景灰度差别较大时,用较好,否则会出现粘连导致无法分割。

3.图像的*滑(滤波)是对图像灰度跳变的一种抑制,图像的锐化则相反,它是对图像的灰度跳变部分的一种增强,突出图像的细节变化信息;PS:*滑和锐化都属于滤波,都用同一个函数,都是先建立个滤波器,但区别在于选择的方式算子不同;例如:建立一个滤波器为:h = fspecial(type,parameter);再通过该滤波器对图像进行滤波决定是*滑还是锐化:filterImage = imfilter(srcImage,h);

4.锐化往往也“增强”了噪声,可以将图像锐化和*滑结合使用,若图像本身就有很明显的噪声,可先*滑再锐化,若图像锐化后有了噪声,可再进一步去进行*滑处理;

数字化

一幅原始照片的灰度值是空间变量(位置的连续值)的连续函数。在M×N点阵上对照片灰度采样并加以量化(归为2b个灰度等级之一),可以得到计算机能够处理的数字图像。为了使数字图像能重建原来的图像,对M、N和b值的大小就有一定的要求。在接收装置的空间和灰度分辨能力范围内,M、N 和b的数值越大,重建图像的质量就越好。当取样周期等于或小于原始图像中最小细节周期的一半时,重建图像的频谱等于原始图像的频谱,因此重建图像与原始图像可以完全相同。由于M、N 和b三者的乘积决定一幅图像在计算机中的存储量,因此在存储量一定的条件下需要根据图像的不同性质选择合适的M、N 和b值,以获取最好的处理效果。
 

几何变换

用于改正图像采集系统的系统误差和仪器位置的随机误差所进行的变换。对于卫星图像的系统误差,如地球自转、扫描镜速度和地图投影等因素所造成的畸变,可以用模型表示,并通过几何变换来消除。随机误差如飞行器姿态和高度变化引起的误差,难以用模型表示出来,所以一般是在系统误差被纠正后,通过把被观测的图和已知正确几何位置的图相比较,用图中一定数量的地面控制点解双变量多项式函数组而达到变换的目的。
 

归一化

使图像的某些特征在给定变换下具有不变性质的一种图像标准形式。图像的某些性质,例如物体的面积和周长,本来对于坐标旋转来说就具有不变的性质。在一般情况下,某些因素或变换对图像一些性质的影响可通过归一化处理得到消除或减弱,从而可以被选作测量图像的依据。例如对于光照不可控的遥感图片,灰度直方图的归一化对于图像分析是十分必要的。灰度归一化、几何归一化和变换归一化是获取图像不变性质的三种归一化方法。

*滑

消除图像中随机噪声的技术。对*滑技术的基本要求是在消去噪声的同时不使图像轮廓或线条变得模糊不清。常用的*滑方法有中值法、局部求*均法和k *邻*均法。局部区域大小可以是固定的,也可以是逐点随灰度值大小变化的。此外,有时应用空间频率域带通滤波方法。
 

复原

校正各种原因所造成的图像退化,使重建或估计得到的图像尽可能逼*于理想无退化的像场。在实际应用中常常发生图像退化现象。例如大气流的扰动,光学系统的像差,相机和物体的相对运动都会使遥感图像发生退化。基本的复原技术是把获取的退化图像g(x,y)看成是退化函数h(x,y)和理想图像f(x,y)的卷积。它们的傅里叶变换存在关系 G(u,v=H(u,v)F(u,v)。根据退化机理确定退化函数后,就可从此关系式求出F(u,v),再用傅里叶反变换求出f(x,y)。通常把
称为反向滤波器。实际应用时,由于H(u,v)随离开uv*面原点的距离增加而迅速下降,为了避免高频范围内噪声的强化,当u2+v2大于某一界限值W娿时,使M(u,v)等于1。W0的选择应使H(u,v)在 u2+v2≤W娿范围内不会出现零点。图像复原的代数方法是以最小二乘法最佳准则为基础。寻求一估值弮,使优度准则函数值最小。这种方法比较简单,可推导出最小二乘法维纳滤波器。当不存在噪声时,维纳滤波器成为理想的反向滤波器。
 

增强

对图像中的信息有选择地加强和抑制,以改善图像的视觉效果,或将图像转变为更适合于机器处理的形式,以便于数据抽取或识别。例如一个图像增强系统可以通过高通滤波器来突出图像的轮廓线,从而使机器能够测量轮廓线的形状和周长。图像增强技术有多种方法,反差展宽、对数变换、密度分层和直方图均衡等都可用于改变图像灰调和突出细节。实际应用时往往要用不同的方法,反复进行试验才能达到满意的效果。

[opencv]图像预处理方案及方式的更多相关文章

  1. python+opencv 图像预处理

    一 python 生成随机字符串序列+ 写入到图片上 from PIL import Image,ImageDraw,ImageFont import numpy as np import rando ...

  2. 基于OpenCV的火焰检测(一)——图像预处理

    博主最近在做一个基于OpenCV的火焰检测的项目,不仅可以检测图片中的火焰,还可以检测视频中的火焰,最后在视频检测的基础上推广到摄像头实时检测.在做这个项目的时候,博主参考了很多相关的文献,用了很多种 ...

  3. Ubuntu系统---编译opencv程序的几种方式g++、Makefile、Cmake

    Ubuntu系统---编译opencv程序的几种方式g++.Makefile.Cmake 先建立一个工程(一个文件夹),写好xxx.cpp文件,可以是多个: //----------opencv.cp ...

  4. Caffe2 图像预处理(Image Pre-Processing)[6]

    学习如何使得图像符合预训练模型的需求,或者用其他数据集的图像来测试自己的模型. - 调整大小 - 缩放 - HWC和CHW,数据通道交换 - RGB和BGR,颜色通道的交换 - Caffe2的图像预处 ...

  5. OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放

    这篇已经写得很好,真心给作者点个赞.题目都是直接转过来的,直接去看吧. Reference Link : http://blog.csdn.net/poem_qianmo/article/detail ...

  6. 【OpenCV新手教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨) ...

  7. 『TensorFlow』第九弹_图像预处理_不爱红妆爱武装

    部分代码单独测试: 这里实践了图像大小调整的代码,值得注意的是格式问题: 输入输出图像时一定要使用uint8编码, 但是数据处理过程中TF会自动把编码方式调整为float32,所以输入时没问题,输出时 ...

  8. 学习 opencv---(12)OpenCV 图像金字塔:高斯金字塔,拉普拉斯金字塔与图片尺寸缩放

    在这篇文章里,我们一起学习下 图像金字塔 的一些基本概念,如何使用OpenCV函数pyrUp和pyrDown 对图像进行向上和向下采样,以及了解专门用于缩放图像尺寸的resize函数的用法.此博文一共 ...

  9. opencv:图像的基本变换

    0.概述 图像变换的基本原理都是找到原图和目标图的像素位置的映射关系,这个可以用坐标系来思考,在opencv中, 图像的坐标系是从左上角开始(0,0),向右是x增加方向(cols),向下时y增加方向( ...

随机推荐

  1. display:inline-block,block,inline元素的区别

    1.display:block将元素显示为块级元素,从而可以更好地操控元素的宽高,以及内外边距,每一个块级元素都是从新的一行开始.2.display : inline将元素显示为行内元素,高度,行高以 ...

  2. Activity 详解

    1.活动的生命周期 1.1.返回栈 Android是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称作返回栈.栈是一种先进后出的数据结构,在默认情况下,每当我们启 ...

  3. 软件测试人员必备的linux命令

    1 目录与文件操作1.1 ls(初级)使用权限:所有人功能 : 显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录). 参数 : -a 显示所有档案及目录 (ls内定将档案名或目录名称开头为 ...

  4. LoadRunner中怎么设置密码参数化与用户名关联

    对密码参数化时从parameter里的"Select next row"列表中选择Same Line As这一选项,意思就是每一个密码参数化取值与对应行的用户名关联起来了

  5. 【编程思想】【设计模式】【结构模式Structural】门面模式/外观模式Facade

    Python版 https://github.com/faif/python-patterns/blob/master/structural/facade.py #!/usr/bin/env pyth ...

  6. Spring Boot中使用Dubbo

    高并发下Redis会出现的问题: 缓存穿透 缓存雪崩 热点缓存 一.定义commons工程11-dubboCommons (1) 创建工程 创建Maven的Java工程,并命名为11-dubboCom ...

  7. JSP页面的基本结构

    一:一个JSP页面由以下基本元素组成. (1)HTML标签 (2)CSS (3)变量和方法 (4)Java代码段 (5)JSP动作和指令 (6)其他脚本元素(如Javascript) 二:JSP的基本 ...

  8. 调整markdown 图片大小和对齐方式

    [博客园]调整markdown 图片大小和对齐方式 图片大小 例 <img src="https://img2020.cnblogs.com/blog/2199257/202101/2 ...

  9. 淘宝网购物车jquery源码和网易新用户注册页面表单验证的练习

    淘宝网购物车源码: <html lang="en"> <head> <meta charset="UTF-8"> <t ...

  10. MySQL获取对应时间

    一.查询当前时间包含年月日 SELECT CURDATE(); SELECT CURRENT_DATE(); 二.查询当前时间包含年月日时分秒 SELECT NOW(); SELECT SYSDATE ...