[opencv]图像预处理方案及方式
像识别中,图像质量的好坏直接影响识别算法的设计与效果精度,那么除了能在算法上的优化外,预处理技术在整个项目中占有很重要的因素,然而人们往往忽略这一点。
图像预处理,将每一个文字图像分检出来交给识别模块识别,这一过程称为图像预处理。
图像预处理的主要目的是消除图像中无关的信息恢复有用的真实信息增强有关信息的可检测性和最大限度地简化数据从而改进特征抽取、图像分割、匹配和识别的可靠性。预处理过程一般有数字化、几何变换、归一化、*滑、复原和增强等步骤。
1.滤波:滤波(Wave filtering)是将信号中特定波段频率滤除的操作,是抑制和防止干扰的一项重要措施。ps:均值、中值、高斯滤波在一定程度上会影响图像的清晰度,清晰图像无需进行滤波,一般都是有明显的噪点时才进行滤波处理。
2.图像的归一化和直方图有相似性,在一定程度上可以将诡异哈理解为0-255的像素值变为0-1之间,缩小了其分配距离。ps:在目标与背景灰度差别较大时,用较好,否则会出现粘连导致无法分割。
3.图像的*滑(滤波)是对图像灰度跳变的一种抑制,图像的锐化则相反,它是对图像的灰度跳变部分的一种增强,突出图像的细节变化信息;PS:*滑和锐化都属于滤波,都用同一个函数,都是先建立个滤波器,但区别在于选择的方式算子不同;例如:建立一个滤波器为:h = fspecial(type,parameter);再通过该滤波器对图像进行滤波决定是*滑还是锐化:filterImage = imfilter(srcImage,h);
4.锐化往往也“增强”了噪声,可以将图像锐化和*滑结合使用,若图像本身就有很明显的噪声,可先*滑再锐化,若图像锐化后有了噪声,可再进一步去进行*滑处理;
数字化
几何变换
归一化
*滑
复原
增强
[opencv]图像预处理方案及方式的更多相关文章
- python+opencv 图像预处理
一 python 生成随机字符串序列+ 写入到图片上 from PIL import Image,ImageDraw,ImageFont import numpy as np import rando ...
- 基于OpenCV的火焰检测(一)——图像预处理
博主最近在做一个基于OpenCV的火焰检测的项目,不仅可以检测图片中的火焰,还可以检测视频中的火焰,最后在视频检测的基础上推广到摄像头实时检测.在做这个项目的时候,博主参考了很多相关的文献,用了很多种 ...
- Ubuntu系统---编译opencv程序的几种方式g++、Makefile、Cmake
Ubuntu系统---编译opencv程序的几种方式g++.Makefile.Cmake 先建立一个工程(一个文件夹),写好xxx.cpp文件,可以是多个: //----------opencv.cp ...
- Caffe2 图像预处理(Image Pre-Processing)[6]
学习如何使得图像符合预训练模型的需求,或者用其他数据集的图像来测试自己的模型. - 调整大小 - 缩放 - HWC和CHW,数据通道交换 - RGB和BGR,颜色通道的交换 - Caffe2的图像预处 ...
- OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放
这篇已经写得很好,真心给作者点个赞.题目都是直接转过来的,直接去看吧. Reference Link : http://blog.csdn.net/poem_qianmo/article/detail ...
- 【OpenCV新手教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨) ...
- 『TensorFlow』第九弹_图像预处理_不爱红妆爱武装
部分代码单独测试: 这里实践了图像大小调整的代码,值得注意的是格式问题: 输入输出图像时一定要使用uint8编码, 但是数据处理过程中TF会自动把编码方式调整为float32,所以输入时没问题,输出时 ...
- 学习 opencv---(12)OpenCV 图像金字塔:高斯金字塔,拉普拉斯金字塔与图片尺寸缩放
在这篇文章里,我们一起学习下 图像金字塔 的一些基本概念,如何使用OpenCV函数pyrUp和pyrDown 对图像进行向上和向下采样,以及了解专门用于缩放图像尺寸的resize函数的用法.此博文一共 ...
- opencv:图像的基本变换
0.概述 图像变换的基本原理都是找到原图和目标图的像素位置的映射关系,这个可以用坐标系来思考,在opencv中, 图像的坐标系是从左上角开始(0,0),向右是x增加方向(cols),向下时y增加方向( ...
随机推荐
- 大数据学习day13------第三阶段----scala01-----函数式编程。scala以及IDEA的安装,变量的定义,条件表达式,for循环(守卫模式,推导式,可变参数以及三种遍历方式),方法定义,数组以及集合(可变和非可变),数组中常用的方法
具体见第三阶段scala-day01中的文档(scala编程基础---基础语法) 1. 函数式编程(https://www.cnblogs.com/wchukai/p/5651185.html): ...
- TCP中的TIME_WAIT状态
TIME_WAIT的存在有两大理由 1.可靠地实现TCP全双工连接的终止 2.允许老的可重复分节在网络中消失. 对于理由1,我们知道TCP结束需要四次挥手,若最后一次的客户端的挥手ACK丢失(假设是客 ...
- 文件管理与XMl、JSON解析
1.使用内部存储器 你可以直接保存文件在设备的内部存储.默认情况下,文件保存在你的应用程序的内部存储,其他应用程序或用户不能访问.当用户卸载你的应用城西是,这些文件被删除. (一)在内部存储创建并写入 ...
- Linux基础命令---exportfs管理挂载的nfs文件系统
exportfs exportfs主要用于管理当前NFS服务器的文件系统. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.Fedora. 1.语法 /usr/sb ...
- vue2.x入门学习
vue安装 # 最新稳定版本 $ npm install vue # 最新稳定 CSP 兼容版本 $ npm install vue@csp 引包 cd /d/vue/demo cnpm instal ...
- rust方法集
随机数.数字对比.控制台输入 use std::io; use std::cmp::Ordering; use rand::Rng; fn main() { println!("please ...
- Quartz使用AutoFac依赖注入问题小结
theme: channing-cyan highlight: a11y-dark 背景 最近在做一个需求,就是在Job中捕捉异常,然后通过邮件或者消息的方式推送给指定人员,在需求实现的过程中遇到的一 ...
- Python把两个列表索引相同的值相加
方案一 list1=[1,2,3,4,5] list2=[6,7,8,9,10] list3=[] list3=[i + j for i, j in zip(list1, list2)] print( ...
- hitcontraining_magicheap
拿到题目例行检查 程序是64位的程序 保护几乎全开,试运行一下程序 十分明显的堆溢出的界面,将程序放入ida中,shift+f12发现了后门程序 进入main主函数进行查看 可以看到当,v3==486 ...
- Windows线程控制
多线程无疑带来了很多方便,提高了很多开发效率,但是同时也带来了很多问题. 举个栗子: DWORD WINAPI ThreadProc(LPVOID lPParameter); int m = 0; i ...