目錄
- 考試范圍
- 第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")