医学图像处理期末复习
目录
- 考试范围
- 第1章 绪论
- 1.1 数字图像处理的概念
- 1.2 数字图像处理的应用领域
- 1、医学领域
- 2、其他领域
- 1.3 数字图像处理基础
- 1.4 数字图像基础运算
- 第2章 医学图像灰度变换与空间滤波
- 2.1 医学图像灰度变换
- 线性灰度变换
- 非线性灰度变换
- 2.2 直方图均衡化
- √2.3 空间平滑滤波
- 线性空间滤波
- 均值滤波
- 非线性空间滤波
- 中值滤波
- 中值滤波器与均值滤波器的比较
- 2.4 空间锐化滤波
- 第3章 频率域滤波
- 3.1 频率域滤波
- 第4章 CT图像重建
- 4.1 CT图像重建
- 第5章 图像色彩处理
- 5.1 彩色图像基础
- 5.2 彩色图像空间滤波
- 第6章 医学图像压缩、存储与通信
- 6.1 图像压缩
- 6.2 医学图像存储与通信
- √第7章 医学图像分割
- 7.1 医学图像分割概述
- 7.2 点、线和边缘检测
- 7.3 阈值处理
- 7.4 区域生长
- 7.5 形态学分水岭算法
- 第8章 形态学图像处理
- 8.1 形态学图像处理基础
- 8.2 基本形态学算法
- 第9章 医学图像特征提取
- 9.1 医学图像特征提取
- 边界简单描绘子
- 区域简单描绘子
- 第10章 医学图像处理新技术
- 10.1 医学图像处理新技术
- 学习通题目
- 第3章
- 第4章
- 第5章
- 第6章
- 第7章
- 第8章
- 第9章
- 第10章
- 测试
- 复习
- 一、基础概念与系统(30分钟)
- (一)数字图像基础
- (二)医学影像与 PACS 系统
- 二、灰度变换与空间滤波(60分钟)
- (一)灰度变换
- (二)直方图增强——直方图均衡化
- (三)图像平滑(去噪)
- (四)图像锐化
- 三、图像分割与特征提取(40分钟)
- (一)图像分割算法
- (二)形态学操作
- (三)特征提取
- 考试题型
- 简答题
- 综合应用题
- 实验
- 实验一
- 数字减影
- 实验2
- 将图像变成负片
- 线性灰度变换
- 伽马非线性变换
- 直方图均衡化
- 计算灰度线性变换
- 计算直方图均衡化
- 实验3
- 医学图像开窗
- 均值滤波
- 中值滤波
- 锐化滤波
- Sobel
- Laplacian
- 实验4
- 阈值分割
- Kirsch算子边缘检测
- 实验5
- 区域生长算法
- 分水岭算法
考试范围
期末考试题型
选择题(10题,每题2分,共20分)
判断题(15题,每题1分,共15分)
简答题(5题,每题6分,共30分)
综合应用题(3题,第1,2小题各10分,第3小题15分,共35分)
第1章 绪论
1.1 数字图像处理的概念
什么是数字图像?
数字图像处理
低级:侠义图像处理
由图像到图像
例如:使图像清晰
中级:图像分析
获得图像的客观信息,以建立对图像中目标的描述
高级:图像理解
得出对图像内容的理解,从而指导和规划行动
例如:自动判别视网膜疾病的病变过程
图像识别的基本步骤
图像采集
图像增强
图像分割
图像特征提取
图像识别
图像采集
X射线
CT
PET
MRI
超声
图像增强:对图像进行某种操作,显示那些被模糊的细节,或突出一副图像中感兴趣的部分
图像分隔:是将一幅图像划分为目标和组成部分
图像特征提取:一般在分隔后进行,包括特征检测和特征描述
图像识别:是基于图像的特征描述,对目标赋予标记的过程
图像压缩:是通过有损压缩和无损压缩技术减少图像的存储量
彩色图像处理:是处理彩色图像的方法
1.2 数字图像处理的应用领域
1、医学领域
图像分割
图像增强
图像融合:通过对多幅图像的互补信息的处理,将不同模态的数据(如CT和PET图像)融合。
手术导航:
三维重建与可视化:
AI辅助诊断系统:
2、其他领域
工业方面
指纹识别
人脸识别
视频跟踪
车牌识别
智能机器人
1.3 数字图像处理基础
数字图像:以数字形式来表示的图像
由M行N列的像素组成,每个像素存储一个值。像素值通常为灰度值。
数字化后的图像可以用二维矩阵来表示
采样和量化
模拟图像数字化时会涉及到 采样和量化。
⭐️
存储容量的计算
📚
512x512是分辨率,灰度级为256则量化位数为8?,÷8将单位转换为字节
数字图像的基本类型
二值图像
灰度图像
彩色图像
常用matlab函数简介
读取图像
保存图像
显示图像
读取dicom图像
查看dicom图像文件信息
1.4 数字图像基础运算
加法运算
多次叠加可以有效降低图像的随机噪声
拥有二次曝光的效果
减法运算
数字减影血管造影
乘法运算
除法运算
基本几何运算
图像的方法、缩小
图像的平移、镜像与旋转
图像缩小
图像放大
图像的位置变换
图像的平移
通过平移把感兴趣的部分移到中心来处理
图像的镜像
水平镜像
垂直镜像
图像的旋转
旋转不按90°的倍数时,计算出的x’y’可能会出现小数
图像几何运算matlab函数
💻代码操作
第2章 医学图像灰度变换与空间滤波
2.1 医学图像灰度变换
线性灰度变换
1.全域线性灰度变换
灰度变换时,L是256
当α大于1时,图像对比度增大
当α大于0小于1时,图像对比度减小
当α小于1时,图像亮区域变亮,暗区域变暗
📚
图像反转
生成负片图像
简单说就是黑色变白色,白色变黑色
2.分段线性灰度变换
将图像的某一段感兴趣的灰度范围线性扩展,相对抑制不感兴趣的灰度区域
类似中学的分段函数
只对小女孩感兴趣,小女孩位于中灰度,因此将低灰度和高灰度部分压缩,中间灰度拓展
灰级窗
医学影像的灰度级在12位以上,常规显示器灰度级只有8位,常规显示器很难显示医学图像所有的灰度级
灰级窗技术:一种特殊的分段线性灰度变换技术
左边:分段线性灰度变换图,右边:灰级窗技术示意图
通过开窗,每次只把窗内的灰度级展宽,而把窗外的灰度级完全抑制掉
非线性灰度变换
3.伽马变换
伽马值小于1:拓展图像灰度
伽马值大于1:压缩图像灰度
📖例子
采用伽马值大于1压缩灰度
相关matlab函数
2.2 直方图均衡化
灰度直方图
灰度直方图反映了一幅图像中每个灰度级出现的频率,展现
了图像最基本的统计特征
📚直方图的绘制
直方图均衡化
直方图均衡化的基本思想是:将图像的直方图变换为均匀分布的形式,从而达到增强图像对比度的效果。
直方图均衡化算法
直方图均衡化的步骤
📚
步骤1:计算图像各灰度级的像素个数在整个图像中所占的比率
步骤2:计算图像各灰度级的累计分布概率
步骤3:把计算出的sk安排到对应的灰度级中,如图像的灰度级有8级
合并相同灰度级:重新命名Sk,重新计算nsk和psk
如图像的灰度级有8级,则需要用1/7为量化单位进行舍入运算
相关的matlab函数
√2.3 空间平滑滤波
线性空间滤波
例:乘法、加法
均值滤波
是一个线性空间滤波器。原理为将一个像素及其邻域内的所有像素的平均灰度值替代该像素值,从而达到图像平滑的目的。
均值滤波可以降噪,去除不相干的细节
3x3均值模板
⭐️计算
模板越大,去除噪声效果越好,但是图像会变模糊
非线性空间滤波
例:最大值、最小值、中间值
中值滤波
中值滤波器是非线性空间滤波器。对模板覆盖的图像区域中的像素值排序,用中间值代替原灰度值,就可以达到滤除噪声的目的。
⭐️计算
用中值滤波处理得到的平滑图像
中值滤波器与均值滤波器的比较
被椒盐噪声污染的图像中有干净点也有污染点,污染点为黑色和白色,灰度值为0和255,中值滤波选择中间值代替被污染点
图像的每个点都存在噪声,噪声幅值近似正态分布,因为图像上每个点都是污染点,所以中值滤波选不到合适的干净点
🍑总结
- | 椒盐噪声 | 高斯噪声 |
---|---|---|
中值滤波 | √ | |
均值滤波 | √ |
⭕️注意:中值滤波在处理点线等细节比较多的医学图像时要特别注意
如对数字乳腺图像进行处理时,可能会把小的钙化点滤除,造成诊断信息丢失
相关matlab函数
2.4 空间锐化滤波
图像锐化的目的是增强图像的边缘和轮廓
锐化的可以使灰度反差增强,边缘增强,轮廓清晰
二阶微分锐化
有些灰度变化特性一阶微分的描述不是很明确,采用二阶微分能够更加获得更丰富的细节。
拉普拉斯算子不分x方向和y方向,旋转不变,
因此有各向同性的特点
拉普拉斯算子锐化效果
相关matlab函数
imfilter
fspecial
2.3小节
第3章 频率域滤波
3.1 频率域滤波
空间域滤波→频域率滤波
频域率滤波的基础是傅里叶变换
对图像进行傅里叶变换可以得到信号在各个频率点上的强度,
灰度变换缓慢的区域,对应的频率值较低,
灰度变换剧烈的边缘区域,对应的频率值较高
傅里叶变换可以将第二章学到的空间域卷积运算转化为频率域的乘积运算
可以根据需要,选择保留低频或是高频信息
低通滤波器
小于某个值时设为0,大于某个值时设为1
高通滤波器
小于某个值时设为1,大于某个值时设为0
相关matlab函数
第4章 CT图像重建
4.1 CT图像重建
反投影图像的增加,呈现的结果越接近原图
CT重建算法有:反投影法、反投影法、傅里叶变换法等
反投影法
📚
求投影值
用反投影法求出x1到x16的值
除以投影线数目6
伪迹
回抹过程中把原图本来是0的像素点,抹上一个平均值
改善模糊:滤波反投影重建
第5章 图像色彩处理
5.1 彩色图像基础
与美术三原色不一样
彩色模型
不同彩色模型可以通过数学方法相互转换
两种常用彩色模型:RGB和HSI
RGB
计算机显示器、手机屏幕、彩色电视机
HSI
H色调,S饱和度,I亮度
值越大,颜色越纯
HSI和RGB相互转换
RGB→HSI:
HSI→RGB:
5.2 彩色图像空间滤波
彩色图像的常规处理方法有两种:
第一种:分成三幅图像,分别处理每一个分量图像,再将处理结果合成一幅彩色图像。
第二种:直接对彩色像素进行处理。
第6章 医学图像压缩、存储与通信
6.1 图像压缩
图像冗余分为:编码冗余、空间冗余、视觉冗余
编码冗余:如果一个图像的灰度级编码,使用了多于实际需要的编码符号,称为编码冗余。
空间冗余:在图像空间相关像素的表示中,信息被不必要的重复,称为空间冗余。
视觉冗余:一些信息在一般视觉处理中,比其它信息的相对重要程度要小,称为视觉冗余。
图像压缩原理
判断压缩后的图像是否失真
保真度准则:客观、主观
图像压缩模型由编码器和解码器组成
图像压缩分类
JPEG压缩融合了无损和有损的编码方法
⭕️在医疗文件的归档中,有损压缩被禁止
⭐️
无损压缩经典方法:哈夫曼编码
哈夫曼编码满足前缀编码
频度大的像数值–较短编码
频度小的像数值–较长编码
📚哈夫曼树
📚
构造哈夫曼树
编码:左0右1
算压缩效率:
6.2 医学图像存储与通信
PACS系统:影像存档和通信系统
用途:图像存档、检索、传送、显示、处理和拷贝或打印的硬件和软件的系统
目的:有效的管理和利用医学图像资源
DICOM标准
DICOM(Digital Imaging and Communications in
Medicine):即医学数字成像和通信,是医学图像和相关信息的国际标准。
数据元素
相关matlab函数
√第7章 医学图像分割
7.1 医学图像分割概述
图像分割:指将图像分成若干互不重叠的子区域,使得同一个子区域内的特征具有一定相似性,不同子区域的特征呈现较为明显的差异。
图像分割是图像识别和图像理解的基本前提步骤。
医学图像分割:医学图像处理与分析领域的复杂而关键的步骤
目的:将医学图像中具有某些特殊含义的部分分割出来
边缘检测
阈值法:利用图像中要提取的目标区域,与其背景在灰度特性上的差异,把图像看作具有不同灰度级的两类区域,目标区域和背景区域,选取一个合理的阈值,确定图像中每个像素点属于目标区域还是背景区域
区域生长法:先选取种子点,依次将种子周围相似像素合并到种子像素所在的区域中
分水岭法:把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该店的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭
深度学习
7.2 点、线和边缘检测
📚
相关matlab函数
7.3 阈值处理
全局阈值T的选取
Otsu法最佳全局阈值处理
基本思想:又称作最大类间方差法,因为按照Ptsu法最佳全局阈值处理后,目标与背景图像的类间方差最大
无论图像的灰度直方图是否有明显的双峰,图像都有较好的分割效果
7.4 区域生长
定义:指根据预定义的生长准则,将像素或子区域组合成更大区域的过程。
基本方法:以一组生长点开始,搜索其邻域,通过把那些与种子具有相同预定义性质(如灰度、颜色或纹理等)的邻域像素添加进来形成生长区域。
区域生长步骤:
📚
7.5 形态学分水岭算法
第8章 形态学图像处理
8.1 形态学图像处理基础
图像分割的问题
腐蚀
膨胀
先做基于原点映射,再膨胀
改变了目标物的大小,改进:
开运算
闭运算
常用的matlab函数
8.2 基本形态学算法
边界提取,孔洞填充,提取连通分量,细化
常用的matlab函数
第9章 医学图像特征提取
9.1 医学图像特征提取
边界简单描绘子
区域简单描绘子
第10章 医学图像处理新技术
10.1 医学图像处理新技术
学习通题目
第3章
【单选题】傅里叶变换后图像的四周部分为()。
A高频分量
B低频分量
C 频谱
D无效值
傅里叶变换后,图像频谱中,中心对应低频分量,四周对应高频分量(反映图像细节、边缘等快速变化部分 ),所以选 A
【单选题】频域滤波指图像进行()后,在变换域中对图像进行滤波处理,处理完毕后进行逆变换,获得滤波后的图像。
A傅里叶变换
B拉普拉斯变换
C 线性变换
D 伽马变换
第三章
【判断题】空间域和频域线性滤波的基础是卷积定理。()
对
错
卷积定理表明,
空间域的卷积等效于频域的乘积,
频域的卷积等效于空间域的乘积,
是空间域与频域线性滤波相互转换、实现滤波操作的理论基础 所以该表述正确。
【判断题】傅里叶变换可以将图像从频域转换到空域。()
对
错
傅里叶变换:将图像从空域转换到频域,
而逆傅里叶变换:才是将图像从频域转换回空域,
题干说法弄反了转换方向,所以错误。
第4章
【判断题】直接反投影重建可以避免伪迹的产生。
对
错
直接反投影重建会因简单叠加投影数据,导致出现星状伪迹等问题,无法避免伪迹产生,所以该表述错误。
第5章
【判断题】不同的彩色模型之间无法互相转换。()
对
错
【判断题】f代表一幅RGB图像,则提取绿色分量图像f的Matlab代码为:g=f(:,:3)。()
对
错
在 MATLAB 中,RGB 图像的通道索引顺序是红(1)、绿(2)、蓝(3)。
提取绿色分量应使用 g = f(:,:,2),而 f(:,:,3) 提取的是蓝色分量,因此题干代码错误。
⭐️记忆:红1橙黄绿2青蓝3紫
【判断题】计算机显示器主要采用HSI彩色模型。()
对
错
第五章
第6章
【单选题】单选题
1.哈夫曼编码属于()。
а有损压缩
в无损压缩
с预测编码
D混合压缩
【多选题】以下哪些是PACS的建设目标()
A为医学影像管理服务
B为临床诊断服务
C为现代通讯服务
D为远程会诊服务
【判断题】判断题
有损压缩在压缩和解压缩过程中没有信息损失。()
对
错
有损压缩会通过舍弃部分冗余或次要信息来压缩数据,解压缩后无法完全恢复原始信息,存在信息损失
- 无损压缩在压缩和解压缩过程中没有信息损失。√
第7章
垂直边缘检测算子在垂直方向(列方向 )有差分响应,
C 选项算子列方向为 2、-1 交替,能突出垂直边缘,适合检测垂直边缘 。
【单选题】(Matlab题目)用im2bw函数对灰度图像进行(),得到一幅二值图像。
A 阈值分割
B 区域生长
C直方图均衡化
D分水岭变换
im2bw 是 MATLAB 中用于将灰度图像转换为二值图像的函数,
核心原理是:
设定一个阈值,将图像中大于阈值的像素设为 1(白色),
小于阈值的设为 0(黑色),
属于阈值分割操作。
【多选题】下面哪些属于常用的图像分割方法?}()
A阈值法
B区域生长法
C均值滤波
D直方图均衡化
A. 阈值法:通过设定阈值将图像分为目标和背景,是最基本的分割方法(如 Otsu 阈值、自适应阈值)。
B. 区域生长法:从种子点出发,根据像素相似性扩展区域,属于基于区域的分割算法。
C. 均值滤波:属于图像平滑 / 降噪方法,用于去除噪声,不直接用于分割。
D. 直方图均衡化:用于增强图像对比度,不直接用于分割。
【判断题】使用区域生长法分割图像需要指定种子点。()
对
错
【判断题】使用形态学分水岭分割图像,可以得到连续的分割边界。()
对
错
形态学分水岭分割基于图像拓扑,能将不同区域以连续边界分隔开,可得到连续分割边界,表述正确。
【判断题】拉普拉斯算子具有各向同性的性质。()
对
错
拉普拉斯算子在各方向上对边缘等的响应具有一致性,即各向同性,表述正确。?
【判断题】区域生长方法中选取的种子点只能是单个像素。()
对
错
区域生长法的种子点可以是单个像素,也能是多个像素组成的区域,并非只能是单个像素,表述错误。
【单选题】在OpenCV中,以下哪个函数用于进行阈值处理?
A cv2.cvtColor()
B cv2.threshold()
C cv2.Canny()
D cv2.GaussianBlur()
【单选题】在做分水岭变换时,可以用OpenCV的()函数,计算图像内非零值像素点到最近的零值像素点的距离?
A cv2.distanceTransform()
B cv2.selectROI()
C cv2.watershed()
D cv2.distance()
cv2.distanceTransform() 函数可计算图像中非零像素到最近零像素的距离,常用于分水岭变换前的预处理(如标记前景和背景)
【判断题】在OpenCV中,可以使用函数cv2.watershed()实现分水岭算法。
对
错
【判断题】OTSU是一种确定图像二值化分割阈值的常用算法。
对
错
OTSU通过最大化类间方差自动计算最优二值化阈值,是图像分割中广泛使用的经典算法,表述正确。
第8章
【单选题】()可以在合并断裂目标物的同时,基本保持原目标物的大小。
A 膨胀
B 腐蚀
C 闭运算
D 开运算
闭运算(先膨胀后腐蚀):可填充目标内部的小孔、连接邻近物体,同时通过后续腐蚀基本保持原目标大小,符合题意。
开运算(先腐蚀后膨胀):主要用于去除小噪点,均不符合要求。
【判断题】通过形态学细化运算,可以得到目标物的骨架。()
对
错
【判断题】开运算是对目标图像先腐蚀,再膨胀。()
对
错
闭运算:先膨胀后腐蚀
开运算:先腐蚀后膨胀
⭐️记忆:
闭→后腐蚀,
开→后膨胀
【单选题】在OpenCV中,以下哪个函数用于进行膨胀运算?
A cv2.morphology()
B cv2.erode()
C cv2.dilate()
D cv2.morphologyOpen()
cv2.erode():腐蚀运算
【单选题】在OpenCV中,以下哪个函数用于进行形态学处理?
A cv2.cvtColor()
B cv2.threshold()
C cv2.Canny()
D cv2.morphologyEx()
【判断题】
开运算是腐蚀运算的一种,两者没有区别。
对
错
【判断题】腐蚀运算可以用OpenCV的cv2.close()函数实现,当需要2次腐蚀时可以设置为cv2.close(2)。
对
错
腐蚀运算通过 cv2.erode() 实现,
多次腐蚀需通过循环调用 cv2.erode() 实现
第9章
答案是2。
8连通域是看上下左右斜有没有连
4连通域是看上下左右有没有连
【多选题】常用的边界描绘子包括下面哪些?()
A 周长
B 直径
C 纹理
D 面积
第9章:边界简单描绘子
⭐️
边界简单描绘子:周长、直径、曲率
区域简单描绘子:面积、圆度、质心、纹理
【判断题】目标物的圆度越小,说明越接近圆形。()
对
错
圆度越接近 1 说明越接近圆形,圆度越小说明偏离圆形越远
【判断题】纹理可以用均值、标准差、平滑度、三阶矩、一致性和熵来度量。()
对
错
第9章:
【单选题】
OpenCV的()函数,可计算一幅二值图像中的所有联通分量。
A Canny
B connectedComponents
C erode
D cv2.findContours
【判断题】Hu不变矩是对平移、缩放、镜像和旋转都不敏感的7个二维不变矩的集合,常被用作于特征描述符,可以用
cv2.HuMoments求得。
对
错
【判断题】cv2.findContours()函数接受的参数必须为彩色图像,如果是灰度图要先转化为彩色图像。
对
错
cv2.findContours() 要求输入为二值图像(非 0 即 255),
若输入为灰度图,需先通过 cv2.threshold() 或 cv2.Canny() 转换为二值图,而非转为彩色图像。
若输入为彩色图像,需先转为灰度图再二值化。
第10章
【多选题】下面哪些()是深度学习网络。
A Unet
B GAN
с RGB
D K-means
【判断题】深度学习可以用在医学图像处理领域。()
对
错
【判断题】机器学习和深度学习没有联系。()
对
错
测试
复习
一、基础概念与系统(30分钟)
(一)数字图像基础
定义:离散化的图像,由像素矩阵构成,可被计算机存储与处理。
图像格式:
bmp:无损存储,文件容量大,保留原始图像完整信息。
jpg:有损压缩,日常通用,压缩后容量小但会损失部分细节。
png:支持透明通道,无损压缩,适合需保留透明背景的图像。
tif:专业图像格式,支持分层存储,常用于印刷、遥感等领域。
Dicom:医学专用,除图像外,还绑定患者信息(如姓名、检查号等 ),保障医疗数据合规性。
图像类型:
二值图像:像素值仅为 0(黑 )或 255(白 ),用于简单黑白对比场景(如文字识别 )。
灰度图像:单通道,像素值范围 0(黑 )- 255(白 ),呈现从黑到白的渐变层次。
彩色图像:多通道(如 RGB 三通道 ),通过不同通道色彩混合显示丰富色彩。
(二)医学影像与 PACS 系统
医学影像设备:
CT:通过 X 射线断层扫描,擅长显示骨骼、肺部等结构,图像有较高密度分辨率。
MRI:利用磁场和射频脉冲成像,对软组织(如脑部、肌肉 )成像清晰,无辐射危害。
PETCT:结合 PET(正电子发射断层扫描 )与 CT,既能显示代谢信息(找肿瘤等 ),又能呈现结构细节。
B 超:基于超声原理,实时成像,常用于腹部、妇科等部位检查。
PACS 系统:
定义:医学图像存储与传输系统,实现影像数字化管理。
用途:统一存储、调阅医学影像,便于多科室协同诊断、远程会诊。
构成:涵盖影像采集设备、存储服务器、诊断工作站等。
图像格式:采用 Dicom 格式,确保图像与患者信息关联,符合医疗数据标准。
二、灰度变换与空间滤波(60分钟)
(一)灰度变换
线性灰度变换
- 线性变换:公式
g = a * f + b
(g
为变换后灰度,f
为原灰度 )。a
(对比度系数 ):a > 1
增强对比度,图像明暗差异更显著;1 > a > 0 减弱对比度,图像趋于平淡;a < 0是图像求补,暗部变亮,亮部变暗。b
(亮度系数 ):b > 0
整体提亮图像;b < 0
整体压暗图像。
- 分段线性变换:选取关键灰度区间,对区间内灰度拉伸、区间外灰度压缩,突出感兴趣区域。
- 灰级窗:设定“感兴趣灰度范围 [T1, T2]”,将窗内灰度拉伸至 0 - 255 显示,窗外灰度压缩,便于观察特定组织。一种特殊的分段线性灰度变换技术。
⭐️记忆:
线性变换:g = a * f + b,a是对比度,b是亮度
分段线性变换:选取关键灰度区间,对区间内灰度拉伸、区间外灰度压缩,突出感兴趣区域。
灰级窗:一种特殊的分段线性灰度变换技术。
(二)直方图增强——直方图均衡化
直方图均衡化
核心目的:使图像灰度分布更均匀,提升对比度。
⭐️步骤:
1、每个像素所占比率
2、累加
3、舍入,以1/n为单位
4、安排到就近的灰度级,重新计算psk,nsk
(三)图像平滑(去噪)
图像平滑的概念和原理:
图像平滑是通过邻域像素加权平均(如均值、高斯、中值滤波)来降低噪声、弱化高频细节的技术,本质是用低通滤波抑制图像中的随机干扰,让画面更干净,但过度处理会模糊边缘。
均值滤波
均值滤波:
操作:以 3*3 窗口为例,计算窗口内 9 个像素的平均值(新像素 = (窗口内像素值之和)/ 9 ),替换中心像素。
适用场景:有效去除高斯噪声,但会使图像边缘、细节模糊。
中值滤波
中值滤波:
操作:以 3*3 窗口为例,将窗口内 9 个像素值排序,取中间值替换中心像素。
适用场景:对椒盐噪声去除效果极佳,且能较好保留图像边
📚
边缘保留
(四)图像锐化
2.4 空间锐化滤波
图像锐化的概念:
图像锐化是通过增强图像中像素的边缘和细节(即高频成分),让图像轮廓更清晰、纹理更突出的技术。原理是利用锐化滤波器(如拉普拉斯算子)突出像素值的突变,抑制平滑区域,与图像平滑(弱化细节)相反,常用于增强模糊图像的视觉效果或为后续特征提取强化边缘信息。
常用的一阶微分算子:
常用的二阶微分算子:
拉普拉斯算子的性质:
各向同性:对图像中任意方向的边缘和细节响应一致
5.1 彩色图像基础
三、图像分割与特征提取(40分钟)
(一)图像分割算法
7.3 阈值处理
- 阈值法:
原理:选定灰度阈值 T,将像素灰度值与 T 比较,大于 T 归为目标,小于 T 归为另一类。
常用方法:双峰法,寻找图像灰度直方图两个峰值间的谷值作为 T,适合医学图像中组织与背景灰度差异明显场景。
两种求阈值方法:- OTSU:自动计算阈值,让图像类间方差最大,无论图像的灰度直方图是否有明显的双峰,图像都有较好的分割效果
- 自适应阈值:动态算阈值,适配光照不均的图像 。
7.4 区域生长
- 区域生长法:
原理:从一个 / 多个种子点出发,依据相似性准则,逐步把相邻且满足条件的像素纳入区域,直到无新像素可加入,实现图像分割 。
步骤:
选择种子点。
定义相似性准则(通常为灰度差,如相邻像素灰度差小于某阈值 )。
从种子点开始,逐步合并满足准则的相邻像素,直到无符合条件像素。
7.5 形态学分水岭算法
- 分水岭法:
原理:将图像视为“地形”,灰度低的区域为山谷,灰度高的为山峰;模拟注水过程,不同“流域”(区域 )被分割开。
问题:易受噪声干扰导致过度分割,一般先对图像滤波再使用。
第8章 形态学图像处理
(二)形态学操作
膨胀:用结构元(如 3*3 矩形 )扩张亮区域,填补小空洞,使医学图像中病灶边界更完整。
腐蚀:用结构元收缩亮区域,去除小凸起,可分离粘连目标(如细胞粘连 )。
开运算:先腐蚀后膨胀,能去除噪声、断开小连接,常用于医学图像背景噪声清理。
闭运算:先膨胀后腐蚀,可填补小空洞、连接相近目标,让目标区域更平滑。
(三)特征提取
连通性:
4 连通:仅上下左右相邻的像素视为连通。
8 连通:上下左右及对角线相邻的像素均视为连通,用于识别图像中连续的区域。
提取连通分量:
目标特征计算:
面积:统计连通分量包含的像素个数。
周长:统计连通分量边缘像素数量。
目标数量:通过识别不同连通分量,统计医学图像中目标个数。
考试题型
简答题
📚线性变换
线性灰度变换
📚直方图增强
直方图均衡化
📚计算中值滤波、均值滤波结果
均值滤波
中值滤波
📚区域生长法
7.4 区域生长
📚腐蚀、膨胀
第8章 形态学图像处理
学习通讨论区:
⭐️1.什么是数字图像?写出几个你知道的数字图像处理应用。
答:将一幅图像通过有限个离散点来表示就成为了数字图像,其中的每个点称为像素。
数字图像处理应用:CT,MRI,PET/CT,B超
⭐️2.简述均值滤波。
答:
均值滤波是一个线性空间滤波器。
原理为将一个像素及其邻域内的所有像素的平均灰度值 替代该像素值,从而达到图像平滑的目的。
⭐️3.简述中值滤波。
答:
中值滤波器是非线性空间滤波器。
对模板覆盖的图像区域中的像素值排序,用中间值代替原灰度值,就可以达到滤除噪声的目的。
⭐️4.什么是图像分割?请列举出几种图像分割的常用方法。
答:
图像分割:指将图像分成若干互不重叠的子区域,使得同一个子区域内的特征具有一定相似性,不同子区域的特征呈现较为明显的差异。
图像分割常用算法:
面向边缘的分割:边缘检测
面向区域的分割:阈值法、区域生长法、分水岭法
⭐️5.深度学习在医学图像处理领域有哪些应用?
答:
①医学图像分割、医学图像配准、病变检测。
②从医学图像大数据中,自动学习提取隐含的疾病诊断特征
1.简述医学图像的开窗显示原理。
答:
医学图像开窗显示通过调节窗宽和窗位,将 设备生成的宽范围灰度值 映射到显示器可显示区间,以突出目标组织细节。
2.解释低通滤波和高通滤波的作用。
答:
低通滤波是让低频信息通过,过滤高频信息,高通滤波相反。
低通滤波可以实现图像平滑的效果。
高通滤波可以实现图像锐化的结果。
3.简述CT图像重建的原理。
答:
X 射线多角度扫描获投影值,
经数学处理得衰减系数,
将衰减系数转换为灰度值,
形成二维灰度矩阵成像 。
4.简述彩色图像的常规处理方法。
答:
彩色图像的常规处理方法有两种:
第一种:分成三幅图像,分别处理每一个分量图像,再将处理结果合成一幅彩色图像。
第二种:直接对彩色像素进行处理。
5.什么是PACS系统?
答:
PACS 系统是医院用于医学影像数字化存储、传输及辅助诊断管理的系统 。
6.请简述形态学膨胀、腐蚀、开运算、闭运算答:
答:
膨胀:用结构元扩张亮区域,可以填补小空洞。
腐蚀:用结构元收缩亮区域,可分离粘连目标。
开运算:先腐蚀后膨胀,可去除噪声、断开小连接。
闭运算:先膨胀后腐蚀,可填补小空洞、连接相近目标。
7.常用的图像特征有哪些?
答:
边界描绘子:
简单描绘子:边长,直径,曲率
矩
区域描绘子:
简单描绘子:面积,圆度,质心
纹理
不变矩
综合应用题
代码模板:
import cv2
# 1. 读取图像(以灰度图为例 )
img = cv2.imread('medical_image.dcm', 0)
# 2. 算法执行(如中值滤波去噪 )
denoised_img = cv2.medianBlur(img, 3) # 3*3 窗口中值滤波
# 3. 算法执行(如直方图均衡化增强 )
enhanced_img = cv2.equalizeHist(denoised_img)
# 4. 保存结果
cv2.imwrite('processed_image.png', enhanced_img)
直方图增强
均值滤波
中值滤波
提纲代码部分,综合题,实现步骤,编程实现
六个实验
实验
实验一
数字减影
图像减法运算主要调用 subtract()函数实现,其原型如下所示:
dst = subtract(src1, src2[, dst[, mask[, dtype]]])
src1 表示第一张图像的像素矩阵
src2 表示第二张图像的像素矩阵
dst 表示输出的图像,必须和输入图像具有相同的大小和通道数
mask 表示可选操作掩码(8 位单通道数组),用于指定要更改的输出数组的元素。
dtype 表示输出数组的可选深度
import cv2
import numpy as np
#读取图片
img = cv2.imread("image\\test.jpg")#设置一个与img同样大小,像素值均为50的图像
m = np.ones(img.shape, dtype="uint8")*50
#OpenCV 减法运算,原图像各像素减 50
result = cv2.subtract(img, m)#显示图像
cv2.imshow("original", img)
cv2.imshow("result", result)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()
步骤:
1.
设置一个与原图片大小相同像素值为x的图像
m = np.ones(: , :)*50
2.
OpenCV 减法运算
subtract(a,b)
,a-b,
3.
图像灰度反转
result_inverted = 255 - result
实验2
将图像变成负片
import cv2
import numpy as np
#读取原始图像
img = cv2.imread('lena.png')#图像灰度转换,
#这里是将读入的彩色图像转换为灰度图像,如果读入的图像已经是灰度#图像,则不需要进行此步处理
grayImage = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#获取图像高度和宽度
height = grayImage.shape[0]
width = grayImage.shape[1]#创建一幅图像
result = np.zeros((height, width), np.uint8)#图像灰度反色变换g(c)=255-f(x)
for i in range(height):for j in range(width):gray = 255 - grayImage[i,j]result[i,j] = np.uint8(gray)#显示图像
cv2.imshow("Gray Image", grayImage)
cv2.imshow("Result", result)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()
步骤:
1.
将读入的彩色图像转换为灰度图像
cvtColor(img,:)
2.
获取图像高度和宽度
height = grayImage .shape[0]
width = grayImage.shape[1]
3.
创建一幅图像
np.zeros((height, width),:)
4.
双重循环遍历原图像宽高
图像灰度反色变换g(c)=255-f(x)
或
1.
对图像进行反色处理
img1=255-img
2.
对原图像作伽马变换,伽马值为2
img2=np.power(img/255,2)
线性灰度变换
将灰度在[0.5,0.75]区间的像素变换到[0,1],即灰度值少于0.5的像素均变换为0,大于0.75的像素变换为1,其它保持不变
伽马非线性变换
γ
值越大,图像越暗,对比度越高
import cv2
import numpy as np
#读取原始图像
img = cv2.imread('airport.png')img1=np.power(img/255,2)cv2.imshow("Imput",img)
cv2.imshow("Transform",img1)
cv2.waitKey(0)
步骤:
1.
伽马矫正
img1=np.power(img/255,2)
直方图均衡化
直方图增强
Python 调用 OpenCV中的 cv2.equalizeHist()函数实现直方图均衡化处理,并 且为全局直方图均衡化。其函数原型如下所示,输出的 dst 图像与输入图像 src 具有相同的大小和类型。
dst = cv2.equalizeHist(src)
src 表示输入图像,即原图像。
dst 表示目标图像,直方图均值化处理的结果。
import cv2
import matplotlib.pyplot as plt
#读取图片
img = cv2.imread('pollen.tif')#灰度转换
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#直方图均衡化处理
result = cv2.equalizeHist(gray)#显示图像
plt.subplot(221)
plt.imshow(gray, cmap=plt.cm.gray), plt.axis("off"), plt.title('(a)')
plt.subplot(222)
plt.imshow(result, cmap=plt.cm.gray), plt.axis("off"), plt.title('(b)')
plt.subplot(223)
plt.hist(img.ravel(), 256), plt.title('(c)')
plt.subplot(224)
plt.hist(result.ravel(), 256), plt.title('(d)')
plt.show()
步骤:
1.
灰度转换
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
2.
对图像作直方图均衡化处理
result = cv2.equalizeHist(gray)
3.
计算直方图
cv2.calcHist(src,)
计算灰度线性变换
计算直方图均衡化
读取DICOM格式图像
import pydicom
import cv2
import numpy as np
import matplotlib.pyplot as plt#读取DICOM文件
ds=pydicom.dcmread("ChestDCM.dcm")
#像素值矩阵
im=ds.pixel_array
#后续操作可以对im进行处理,完成骨窗抽取等
图像读取与通道
下面代码完成了图像读取、图像通道数获取与判断、图像数据数组获取、输出图像数组的行数和列数等功能。
注意:有些图像看起来是灰度图像,但是其通道数并非是单通道,在对图像进行图像增强前,有时需要将图像转换为单道道灰度图像,但并非必须条件
import cv2
import numpy
#读取图像
img = cv2.imread('LenaGray.png')
#若为彩色图像,还需要将将图像格式由BGR转换为RGB,
#这是因为cv中的彩色格式与常用的不一样
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)if img.ndim == 2:print('图像是单通道灰度图')
else:print('图像包含多个通道')# 输出图像的通道数print(img.shape[2])#将图像转换为单通道灰度图像
img=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
if img.ndim == 2:print('图像是单通道灰度图')
else:print('图像包含多个通道')# 输出图像的通道数print(img.shape[2])#读取图像数组并打印
array = numpy.array(img)
print(array)
#图像的行数、列数与通道数,当为单通道时,只输出行数与列数
print(array.shape)
print(array.shape[0]) #"图片的像素单位的总行数"
print(array.shape[1]) # "图片的像素单位的总列数"
实验3
医学图像开窗
注: 针对输入的带骨图像进行开窗,将窗位定在灰度值2200,窗宽定在[1400.3000],最后将窗口像素值转换到[0,255]范围内。
步骤:
1.读取dicom图像
ds=pydicom.dcmread()
2.对图像进行分段线性变换
3.对骨骼区进行展宽,对其他区进行压缩
均值滤波
中值滤波
均值滤波
函数名:blur
格式: dst = cv2.blur(src, ksize, anchor, borderType)
功能:对图像进行均值滤波
其中:src表示源图像,ksize表示滤波卷积核的大小,anchor表示图像处理的锚点,borderType表示边界处理方式。
中值滤波
函数名:medianBlur
格式:dst = cv2. medianBlur(src, ksize)
功能:对图像进行中值滤波。
其中,src表示源图像,ksize表示滤波卷积核的大小。
其他图像平滑滤波器,如高斯滤波函数cv2.GassianBlurO,双边滤波函数cv2.bilateralFilterO等。
⭐️
步骤:
1.
读取被噪声污染的图像
2.
对图像进行3x3的均值滤波
img1=cv2.blur(img,(n,n))
对图像进行3x3的中值滤波
img2=cv2.medianBlur(img,(n,n))
锐化滤波
Sobel
步骤:
1.
读取图像
2.
对图像进行sobel算子在x方向上的滤波
x=cv2.sobel(img;1,0)
对图像进行sobel算子在y方向上的滤波
y=cv2.sobel(img;0,1)
3.
将两个结果叠加
dst=cv2.addWeighted()
Laplacian
步骤:
1.
读取原图像
2.
进行格式转换
im=sk.img_as_float(img)
3.
对图像进行拉普拉斯锐化
dst=cv2.Laplacian(img;:;ksize=3)
4.
将图像和锐化后的结果作减法运算,得到增强后的结果图像
result=cv2.subtract(im,dst)
实验4
阈值分割
步骤:
用迭代法求全局阈值
1.
读取图像
2.
初始阈值设置为图像的平均灰度
tnext=np.mean(img)
3.
停止迭代阈值设置为0.5
while(abs(T-Tnext)>0.5)
4.
用T将图像分为两类,小于等于T,和大于T
5.
对两边中的像素分别求平均灰度
6.
两边灰度相加*0.5等于一个新的阈值
7.
用计算出的阈值对图像进行阈值分割
cv.threshold(img,)
用otsu算法计算图像的阈值
1.
cv2.threshold(img,cv2.THRESH_OTSU)
2.
对图像进行阈值分割
Kirsch算子边缘检测
步骤:
1.
先设置八个方向上的kirsch算子
2.
遍历整个图像
对图像上每个点用kirsch算子进行处理
3.
计算出对哪个模板响应值最大,就作为边缘的图像进行输出
实验5
区域生长算法
步骤:
1.
读取图像
2.
手动选择种子点
3.
遍历图像,判断种子点的领域是否符合生长条件
符合,加入到生长区域集合,该点灰度值加入到灰度值集合中
4.计算新的生长区域的灰度值,循环,直到不再有符合条件的点加入
分水岭算法
步骤:
1.
读取图像
2.
通过阈值处理,膨胀,求距离等一系列的预处理过程
cv2.connectedComponents()
3.
用分水岭算法求出分割的结果
cv2.watershed(img,)
🍎总结
函数:
数字减影:
subtract()
负片转换:
img1=255-img
img2=np.power(img/255,2)
灰度线性变换
伽马非线性变换:
img1=np.power(img/255,2)
直方图均衡化:
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
result = cv2.equalizeHist(gray)
cv2.calcHist(src,)
开窗:
对图像进行分段线性变换
对骨骼区进行展宽,对其他区进行压缩
均值滤波:
中值滤波:
img1=cv2.blur(img,(n,n))
img2=cv2.medianBlur(img,(n,n))
锐化滤波:
x=cv2.sobel(img;1,0)
y=cv2.sobel(img;0,1)
dst=cv2.addWeighted()
dst=cv2.Laplacian(img;:;ksize=3)
result=cv2.subtract(im,dst)
阈值分割:
cv2.threshold(img,cv2.THRESH_OTSU)
Kirsch算子边缘检测
先设置八个方向上的kirsch算子
遍历整个图像,对图像上每个点用kirsch算子进行处理
计算出对哪个模板响应值最大,就作为边缘的图像进行输出
区域生长算法:
手动选择种子点
遍历图像,判断种子点的领域是否符合生长条件
符合,加入到生长区域集合,该点灰度值加入到灰度值集合中
计算新的生长区域的灰度值,循环,直到不再有符合条件的点加入
分水岭算法:
cv2.connectedComponents()
cv2.watershed(img,)
框架:
#1.读取图像
img = cv2.imread("image\\test.jpg")#读取dicom图像
ds=pydicom.dcmread("ChestDCM.dcm")