技术标签: 图像处理
数据图像处理基本知识:数字图像处理基础_张红 的博客-程序员宅基地
预备知识
1.颜色空间
答:
RGB:red,green,blue(红,绿,蓝)
HSV:hue, saturation, value(色调:颜色种类;饱和度:颜色纯度;明度:颜色明亮度)
CMY(K):cyan,magenta,yellow,key(蓝绿,品红,黄,黑)
CIE-XYZ:人眼颜色视觉
Lab:
2.像素值范围
答:[0,255]或者[0,1]
3.图片存储
答:
彩色图:RGB三通道存储(三维矩阵:三个矩阵表示),如Red通道,像素值在255之间,0表示黑,255表示最红。
当某个像素点的三个通道值均为255,那么这个像素点的值就是255,呈白色。
灰度图:黑(0),白(255),中间值为不同程度的灰色
彩色图转化为灰度图:Gray=R0.3+G0.59+B*0.11
4.图像增强的目标
答:
抑制无用信息,突出有用信息
第一章、图像的预处理
图像处理分为空间域处理和频率域处理。
一、直方图有关知识
1.什么是直方图?
答:
直方图是图像灰度值的统计,横坐标为灰度值(0~255),纵坐标为像素点个数
2.什么是直方图均衡?
答:
对密集的直方图进行非线性拉伸,密集的直方图变得离散一点,使得图片成块灰度值的地方,对比度变得更好。
3.什么是自适应直方图均衡?(AHE)
答:
通过滑窗,每个窗口做直方图均衡,对于图片同时含有暗和亮,处理效果更好。
4.什么是限制对比度自适应直方图均衡?(CLAHE)
答:
在自适应直方图均衡的基础上进行优化,使得图片中的各位置灰度值具有连续性,看上去更自然一点。
二、形态学有关知识
1.什么是腐蚀和膨胀?
答:
腐蚀:用一个小矩阵模板,沿着图像的高亮部分的内边缘过一遍,其小模板中心点的轨迹形成了新的图像,这就是图片的腐蚀。
膨胀:用一个小矩阵模板,沿着图像的高亮部分的外边缘过一遍,其小模板中心点的轨迹形成了新的图像,这就是图片的膨胀。
2.开运算和闭运算?
答:
开运算:先腐蚀再膨胀,消除目标外的孤立点
闭运算:先膨胀再腐蚀,消除目标内的孔洞
三、空域分析及变换
1.什么是滤波(卷积)?
答:
对图片中某个像素点,用滤波函数(卷积核)乘以该像素点的领域,得到该像素的滤波结果。
(用卷积核对图片进行滑窗,两个矩阵中的数字对应相乘再相加)
定义不同的滤波函数(卷积核3x3、5x5、7x7等),会对图像产生不同的效果,如平滑处理(也叫去燥)、求梯度(也叫锐化)、边缘检测、特征点检测,深度学习中的特征提取也是类似的道理。
2.边界填充的类型?
答:
补零,边界复制,镜像复制,块复制
3.各种滤波函数?
答:
1)均值滤波
方法:使用值全为1卷积核,步长为1,边界填充0
作用:使得图片变模糊了,噪声点没有去除,图像细节也丢失了,没啥用。
2)中值滤波
答:
方法:卷积核滑窗时,将图像中对应矩形区域内的像素,从小到大排序,并选择中间值作为该位置像素的输出
作用:可以去除椒盐噪声,即去除图片中的麻点
3)高斯滤波
方法 :用中间位置像素值大的高斯核处理图片。
作用:模拟人眼,突出中心区域,类似于背景虚化
注:将2D卷积拆分成2个1D卷积,可以有效降低计算量。
4)prewitt滤波:
方法:卷积核的一个方向有梯度,一个方向均值平滑
作用:检测图像中某个方向上(水平或垂直)具有梯度变化的像素领域,即检测边缘,另一个方向变模糊。
5)sobel滤波
方法:卷积核的一个方向有梯度,一个方向高斯平滑
作用:检测图像中某个方向上(水平或垂直)具有梯度变化的像素领域,即检测边缘,另一个方向突出中心区域。。
6)拉普拉斯滤波:
方法:卷积核的值加起来为0,中心点的值等于周围总和值(绝对值相等)
作用:原图减去拉普拉斯滤波后的图像,得到的图像可以突出图像的细节。拉普拉斯滤波本身可以检测边缘、团块
4.高斯金字塔和拉普拉斯金字塔
1)高斯金字塔
作用:用于图像缩放,获取同一物体的不同尺寸。
方法:先进行高斯滤波,再进行降采样
2)拉普拉斯金字塔
方法:第i+1层高斯金字塔图像经过上采样,并进行高斯模糊后,再与第i层高斯金字塔图像相减,可以得到拉普拉斯金字塔的第i层图像。
作用:用于图像恢复,由小尺度图像得到大尺度图像。
图像的高频细节在卷积和下采样中会丢失,而拉普拉斯金字塔可以保留不同尺度的高频信息,并用于图像恢复。
四、频域分析及处理
图像的空间域处理,就是用卷积核进行运算,但是速度太慢。考虑将空间域变换到频率域。
1.傅里叶变换
思路:将空间域信号变成频域
作用:频谱滤波,处理空间域无法处理的情况。
2)小波变换
第二章:图像特征与描述
一、颜色特征
1.量化颜色直方图:对颜色空间进行单元格划分,统计落在单元格的像素点数量。用于RGB,HSV颜色空间。
2.聚类颜色直方图:对出现的像素点颜色进行直方图统计。用于Lab颜色空间。
二、几何特征:边缘(Edge)
1.边缘定义
答:
图片中像素值快速变化的区域,具有丰富的语义信息(像素值的一阶导数,取极值)
2.边缘提取
答:
由于图片中存在噪声,导数对噪声敏感,如果直接提取边缘,会有许多噪声的地方也会出现极值,所以先用高斯平滑滤波,可以突出图片中边缘,去除噪声;最后求导进行边缘提取
(总结:先高斯滤波,再对像素值使用一阶导数,一阶导数极值的地方就是边缘了)
1
3.梯度求边缘
答:
由于图片中的边缘是分布在不同方向上的,比如横着方向提取的边缘,表示图片在这一区域的像素值,横着方向变化剧烈。
那么如果像素值在任一方向变化剧烈,该怎么提取边缘呢?即将横着方向,扩展为梯度方向,可找到当前像素点沿着哪个方向变化最激烈。
那么变化的剧烈值是多少呢?即对x,y方向变化的值,两个一阶导数取平方,再求和,就是梯度。
注:由于提取边缘用的高斯滤波,高斯平滑函数的σ决定高斯函数的胖瘦和高低,即决定边缘提取的精度,σ越小,边缘提取越精确。
三、几何特征:特征点(Corner)
1.特征点定义
答:
我们人类在从不同距离,不同方向,不同光照条件下观察一个物体时,虽然这个物体的大小,形状,明暗都会有不同,但是我们仍然可以判断出,它们是同一个物体。所以,我们认为物体中有些点**(特征点或者关键点),在物体处于不同条件下时,彼此能够匹配**。
那我们在什么条件下仍为两个点就是匹配的特征点呢,这需要描述子来进行判断。
2.harris角点
答:
用一个小窗口,在任一方向上移动,如果每个方向上都有较大的像素值变动,当前位置就是一个角点。如果只有一个方向有像素值变动大,当前位置为边缘直线。无变动则为平区域。
3.fast角点
答:
找特殊点,以某个像素点为中心,观察一个离散圆,如果圆上有n个连续点的像素值,超过或低于某个像素阈值,就认为这个中心像素点是一个角点。
4.SIFT特征点
答:
斑点:SIFT、SURF、ORB
像素值函数的一阶导数值最大值(像素值函数的二阶导数值为0),表示的是边缘。
像素值函数的二阶导数值,取最大值,此时像素点的位置就是斑点。
1)SIFT特征点计算过程
需要理解每一步的具体操作:检测关键点、选关键点方向、生成关键点描述子
检测关键点:
用DOG高斯差分空间代替LOG拉普拉斯空间,减小计算量
选关键点方向:
生成关键点描述子:
2)SIFT算子优缺点
5.SURF特征点
答:
1)SURF特征点计算过程
需要理解每一步的具体操作:
2)SURF算子优缺点
6.ORB特征点
1)ORB特征点计算过程
需要理解每一步的具体操作:改进的fast角点,改进的brief描述子
改进BRIEF描述子:
2)ORB算子优缺点
7.LBP局部二值模式
答:
也是一种特征提取方法。
1)LBP特征计算过程
需要理解每一步的具体操作:
2)LBP算子优缺点
8.Gabor
答:
第三章:传统图像分割和检测算法
一、图像分割
答:
基于图论的图像分割是重点
二、人脸检测
答:
Haar-like特征 + 级联分类器
三、行人检测
答:
方法1: HOG + SVM
方法2:DPM
文章浏览阅读788次。摘自零声教育课程大纲,8个技术维度+项目实战,为你打通linux c/c++后台开发的技术栈。部分往期视频。_linux c学习项目
文章浏览阅读5.2k次,点赞3次,收藏5次。当前有一个需求 前端对当前页面的数据做筛选之后需要将其导出至excel文件且发送的请求需传入需验证的参数如页面token信息尝试了form提交及其他方法后出现excel乱码等问题 最后用ajax成功完成了导出。直接贴代码:下面是解释:xhr.responseType = “arraybuffer”;这段代码不加会导致导出的excel出现乱码问题。xhr.onload内操作如下:使用..._ajax接收byte[]类型数据生成的excel乱码怎么办
文章浏览阅读1.5w次,点赞30次,收藏143次。第一题声明一个Person类,私有化属性name和age,并将字段封装起来;在Person类中定义一个talk()方法,打印姓名和年龄信息;在main方法中声明并实例化一Person对象p,给p中的属性赋值,调用talk()方法打印 我是:张三,今年:18岁。测试说明测试输入:我是:张三,今年:18岁/********* begin *********/ // 声明并实例化一..._大花猫喵喵叫java
文章浏览阅读8.2k次,点赞39次,收藏182次。本文旨在让刚入门Java的新手能够创建第一个web项目,能够对Javaweb开发有一个基本的认识和了解。本文所用工具:Intellij IDEA,可在官网下载社区版或专业版,社区版是免费的。环境:jdk 12.0.2web服务器软件:tomcat 9.0.30数据库:MySQL 8.0.18 (不需数据库只需跳过后面部分即可)Java数据库连接驱动:jdbc 8.0.18jdbc下载教..._idea创建javaweb项目包括数据库连接
文章浏览阅读7.2w次,点赞35次,收藏247次。分享一个简单的Java+JDBC+MySQL数据库开发的简易版超市管理系统,完成简单的基础功能,如登录验证,进货管理,售货管理,信息查询等等,适合做课程设计呢,喜欢的小伙伴可以来看看呢实现功能:库存管理销售管理信息查询系统进货售货库存查询 进货查询 售货查询退出超市数据库进货表(顺序码,条形码,进价,采购数量,采购日期)售货表(顺序码,条形码,数量,零售价,日期时间)库存表(条形码,商品名称,库存量,生产厂商,商品规格,零售价)用户表(顺序码,用户名._数据库超市管理系统
文章浏览阅读487次。这种独立的、单独的面向前端的商业智能BI分析工具,他们更多的定位是部门级和个人级的商业智能BI 分析工具,对于深层次的需要复杂数据处理、集成、建模等很多场景是无法解决的。从市场宣传和销售的角度来说,简化产品的复杂度和上手难度的宣传是没有问题的,有问题的是以一种错误的讲解、不专业的讲解最终误导企业接受了这些不正确的概念,并以这些不正确的概念来评估与规划 商业智能BI 项目的建设,没有充分预计到 商业智能BI 项目建设过程中可能会遇到的挑战与风险,最后导致项目的不成功与失败、反复建设。
文章浏览阅读142次。http://poj.org/problem?id=1584DescriptionThe DIY Furniture company specializes in assemble-it-yourself furniture kits. Typically, the pieces of wood are attached to one another using a wooden peg th..._凸包 hole
文章浏览阅读1.9k次,点赞7次,收藏10次。(@[TOC]) int和Integer的区别1、Integer是int的包装类,int则是java的一种基本数据类型2、Integer变量必须实例化后才能使用,而int变量不需要3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值4、Integer的默认值是null,int的默认值是0..._为什么 @pathvariable 后面跟integer和int 有什么不同
文章浏览阅读2.4k次,点赞2次,收藏6次。1、 名称解释RMAN:RMAN(Recovery Manager)是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的 Oracle 工具。冷备:数据库关闭状态时进行备份CRS:Cluster Ready Service(Oracle集群就绪服务)RAC:RAC是real application clusters的缩写,译为“实时应用集群”, 是Ora..._set newname for database
文章浏览阅读1.9w次,点赞31次,收藏344次。EMC(电磁兼容)一直是电路设计和PCB设计中的难题。EMS是指设备在电磁环境中可以正常工作并且不对其它的设备造成干扰。EMS可以分为两部分,一个是EMI(电磁干扰),一个是EMS(电磁敏感度)。EMI是设备本身对于其他设备的攻击性,而EMS是设备本身对于其它设备抗干扰的能力。EMC测试结果的评价A级:实验中技术性能指标正常B级:试验中性能暂时降低,功能不丧失,实验后能自行恢复C级:功能允许丧失,但能自恢复,或操作者干预后能恢复R级:除保护元件外,不允许出现因设备(元件)或软件损坏数据丢失而造成不能_emc三要素
文章浏览阅读709次。Hibernate 作为一种全自动 ORM 框架,在几年前常与 Spring、Struts2 一起使用。伴随着 MyBatis 的诞生,以及 Hibernate 本身的一些缺陷,如今 Hibernate 已经慢慢淡出了大家的视野。有时我们还会将其与 MyBatis 做一些对比,不过由于很多同学没有使用过它,可能查阅一些资料后还是云里雾里的,因此有必要对 Hibernate 有一个入门级的认识。........._为什么还有2023人在用hibernate
文章浏览阅读1.4w次,点赞3次,收藏30次。有一些应用场景中,我们需要叠加设置多张图片,一般我们可能是采用img来设置,但还有一种更简单的方法,采用背景属性来设置,css提供了可同时设置多张背景图的属性。语法如下:.bg{ background: url('../img/bg1.png'), url('../img/bg2.png'), url('../img/bg3.png')}为不同的背景图片..._css 多个背景图