




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、圖像預處理流程與方法圖像分析中,圖像質量的好壞直接影響識別算法的設計與效果的精度,因此在圖像分析(特征提取、分割、匹配和識別等)前,需要進行預處理。圖像預處理的主要目的是消除圖像中無關的信息,恢復有用的真實信息,增強有關信息的可檢測性、最大限度地簡化數(shù)據(jù),從而改進特征提取、圖像分割、匹配和識別的可靠性。般的預處理流程為:灰度化-幾何變換-圖像增強一、灰度化對彩色圖像進行處理時,我們往往需要對三個通道依次進行處理,時間開銷將會很大。因此,為了達到提高整個應用系統(tǒng)的處理速度的目的,需要對彩色圖像進行灰度化以減少所需處理的數(shù)據(jù)量。在RGB模型中,如果R=G=B時,則彩色表示一種灰度顏色,其中R=G=
2、B的值叫灰度值,因此,灰度圖像每個像素只需一個字節(jié)存放灰度值(又稱強度值、亮度值),灰度范圍為0-255。一般有分量法、最大值法、平均值法、加權平均法四種方法對彩色圖像進行灰度化。加權平均法根據(jù)重要性及其它指標,將三個分量以不同的權值進行加權平均。由于人眼對綠色的敏感最高,對藍色敏感最低,因此,按下式對RGB三分量進行加權平均能得到較合理的灰度圖像。轉換算法L=R*299/1000+G*587/1000+B*114/1000二、幾何變換圖像幾何變換又稱為圖像空間變換,通過平移、轉置、鏡像、旋轉、縮放等幾何變換對采集的圖像進行處理,用于改正圖像采集系統(tǒng)的系統(tǒng)誤差和儀器位置(成像角度、透視關系乃至
3、鏡頭自身原因)的隨機誤差。此外,還需要使用灰度插值算法,因為按照這種變換關系進行計算,輸出圖像的像素可能被映射到輸入圖像的非整數(shù)坐標上。通常采用的方法有最近鄰插值、雙線性插值和雙三次插值。1、最近鄰插值#coding=utf-8最近鄰插值圖像縮放演示importnumpyasnpfromscipyimportinterpolateimportpylabasplimportmatplotlibasmpldeffunc(x,y):return(x+y)*np.exp(-5.0*(x*2+y*2)#X-Y軸分為15*15的網(wǎng)格y,x=np.mgrid-1:1:15j,-1:1:15jfvals=fu
4、nc(x,y)#計算每個網(wǎng)格點上的函數(shù)值15*15的值#三次樣條二維插值newfunc=erp2d(x,y,fvals,kind=cubic)#計算100*100的網(wǎng)格上的插值xnew=npinspace(-1,1,100)#xynew=np.linspace(-1,1,100)#yfnew=newfunc(xnew,ynew)#又僅是y值100*100的值#繪圖#為了更明顯地比較插值前后的區(qū)別,使用關鍵字參數(shù)nterpolation=nearest#關閉imshow()內置的插值運算。pl.subplot(121)im1=pl.imshow(fvals,exte
5、nt=-1,1,-1,1,cmap=mpl.cm.hot,interpolation=nearest,origin=lower)#pl.cm.jetpl.colorbar(im1)pl.subplot(122)im2=pl.imshow(fnew,extent=-1,1,-1,1,cmap=mpl.cm.hot,interpolation=nearest,origin=lower)pl.colorbar(im2)pl.show()2、雙線性插值#encoding:utf-8雙線性插值圖像縮放算法hiimportnumpyasnpimportcv2ascvimportmathdefbi_line
6、ar(src,dst,target_size):pic=cv.imread(src)#讀取輸入圖像th,tw=target_size0,target_size1emptyImage=np.zeros(target_size,np.uint8)forkinrange(3):foriinrange(th):forjinrange(tw):#首先找到在原圖中對應的點的(X,Y)坐標corr_x=(i+0.5)/th*pic.shape0-0.5corr_y=(j+0.5)/tw*pic.shape1-0.5point1=(math.floor(corr_x),math.floor(corr_y)#左
7、上角的點point2=(point10,point11+1)point3=(point10+1,point11)point4=(point10+1,point11+1)fr1=(point21-corr_y)*picpoint10,point11,k+(corr_y-point11)*picpoint20,point21,kfr2=(point21-corr_y)*picpoint30,point31,k+(corr_y-point11)*picpoint40,point41,kemptyImagei,j,k=(point30-corr_x)*fr1+(corr_x-point10)*fr2c
8、v.imwrite(dst,emptyImage)defmain():src=pic/raw_1.jpgdst=pic/new_1.pngtarget_size=(300,200,3)#變換后的圖像大小bi_linear(src,dst,target_size)if_name_=_mainmain()滋gw疏滋滋gw疏滋WMXJSCKMWK?三、圖像增強增強圖像中的有用信息,它可以是一個失真的過程,其目的是要改善圖像的視覺效果,針對給定圖像的應用場合,有目的地強調圖像的整體或局部特性,將原來不清晰的圖像變得清晰或強調某些感興趣的特征,擴大圖像中不同物體特征之間的差別,抑制不感興趣的特征,使之改
9、善圖像質量、豐富信息量,加強圖像判讀和識別效果,滿足某些特殊分析的需要。圖像增強可分成兩大類:頻率域法和空間域法。1、頻率域法我們知道聲音的頻率是什么意思。高頻是指音調很高的噪音,例如鳥的唧唧聲或小提琴的聲音。低頻是指音調很低的聲音,例如深沉的聲音或低音鼓。對于聲音來說,頻率是指聲波的振蕩速度;振蕩通常以周期Hz)表示,高音調由高頻聲波組成。低頻和高頻聲波的示例如下圖所示。在y軸上是振幅,即聲壓相對于聲音感知音量的測量結果;x軸是時間。amplitude同樣,圖像中的頻率是指變化速度。但是圖像的變化是什么意思?圖像會在空間中變化,高頻圖像是指強度變化很多的圖像。亮度水平從一個像素到另一個像素變
10、化很快。低頻圖像可能是亮度比較均勻或變化很慢的圖像。大多數(shù)圖像同時具有高頻和低頻部分。在上圖中,絲巾和條紋襯衫部分是高頻圖像模式;此部分非??焖俚貜囊粋€亮度變成另一個亮度。在同一圖像的更上方,我們看到天空和背景變化很緩慢,稱為平滑的低頻模式。頻率域法是一種間接圖像增強算法,把圖像看成一種二維信號,對其進行基于二維傅里葉變換的信號增強。采用低通濾波(即只讓低頻信號通過)法,可去掉圖中的噪聲;采用高通濾波法,則可增強邊緣等高頻信號,使模糊的圖片變得清晰。_濾玻f*t濾波器t圖像的傅里葉變換進行傅立葉變換(FT)后,可以顯示圖像的頻率分量。#coding=utf-8importnumpyasnpim
11、portmatplotlib.pyplotaspitimportcv2ascvdefft_image(norm_image):hi二維傅里葉變換,接收一個灰度化且歸一化的圖像返回圖像的頻譜變換圖f=np.fft.fft2(norm_image)fshift=np.fft.fftshift(f)frequency_tx=20*npog(np.abs(fshift)returnfrequency_tx#圖像讀取并灰度化image_stripes=cv.imread(images/stripes.jpg)image_stripes=cv.cvtColor(image_stripes,cv.COLOR
12、_BGR2RGB)gray_stripes=cv.cvtColor(image_stripes,cv.COLOR_RGB2GRAY)image_solid=cv.imread(images/pink_solid.jpg)image_solid=cv.cvtColor(image_solid,cv.COLOR_BGR2RGB)gray_solid=cv.cvtColor(image_solid,cv.COLOR_RGB2GRAY)#為了便于后續(xù)處理將顏色空間從0,255歸一化到0,1norm_stripes=gray_stripes/255.0norm_solid=gray_solid/255.
13、0#生成頻譜圖f_stripes=ft_image(norm_stripes)f_solid=ft_image(norm_solid)#可視化f,(ax1,ax2,ax3,ax4)=plt.subplots(1,4,figsize=(20,10)ax1.set_title(originalimage)ax1.imshow(image_stripes)ax2.set_title(frequencytransformimage)ax2.imshow(f_stripes,cmap=gray)ax3.set_title(originalimage)ax3.imshow(image_solid)ax4.
14、set_title(frequencytransformimage)ax4.imshow(f_solid,cmap=gray)I:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;8圖像處理與二維傅里葉變換二維頻譜中的每一個點都是一個與之一一對應的二維正弦/余弦波。拓展閱讀理想的高/低通濾波顧名思義,低通濾波器為:讓低頻信息通過,過濾高頻信息D(urV)其中,DO表示通帶半徑,D(u,v)是到頻譜中心的距離(歐式距離),計算公式如下:M和N表示頻譜圖像的大小,(M/2,N/2)即為頻譜中心tips:高通濾波器與此相反,1減去低通濾波模板即可def
15、make_transform_matrix(image_arr,d0,ftype):Hl構建理想高/低通濾波器INPUT-圖像數(shù)組,通帶半徑,類型111transfor_matrix=np.zeros(image_arr.shape,dtype=np.float32)#構建濾波器w,h=transfor_matrix.shapeforiinrange(w):forjinrange(h):distance=叩.sqrt(i-w/2)*2+(j-h/2)*2)ifdistancedO:transfor_matrixi,j=1else:transfor_matrixi,j=0ifftype=low:
16、returntransfor_matrixelifftype=high:return1-transformatrix#圖像灰度化img_arr=np.array(lmage.open(33.jpg).convert(L)#將圖像從空間域轉換到頻率域f=叩.fft.fft2(img_arr)fshift=np.fft.fftshift(f)#生成低通濾波器F_filter1=make_transform_matrix(img_arr,30,low)#濾波result=fshift*F_filter1#將圖像從頻率域轉換到空間域img_d1=np.abs(np.fft.ifft2(叩.fft.if
17、ftshift(result)#可視化plt.imshow(array_to_image(img_d1)plt.show()(2)咼斯咼/低通濾波Guassian低通濾波器函數(shù)為tips:1減去低通濾波模板即可得到高通濾波模板defmake_transform_matrix(image_arr,d0,ftype=low):bi構建高斯高/低通濾波INPUT-圖像數(shù)組,通帶半徑,類型IIItransfor_matrix=np.zeros(image_arr.shape,dtype=np.float32)#構建濾波器w,h=image_arr.shapeforiinrange(w):forjinr
18、ange(h):distance=叩.sqrt(i-w/2)*2+(j-h/2)*2)transfor_matrixi,j=叩.e*(-1*(distance*2/(2*d0*2)#Gaussiari慮波函數(shù)ifftype=low:returntransfor_matrixelifftype=high:return1-transfor_matrix#圖像灰度化img_arr=np.array(lmage.open(33.jpg).convert(L)#將圖像從空間域轉換到頻率域f=叩.fft.fft2(img_arr)fshift=np.fft.fftshift(f)#生成低通濾波器F_fil
19、ter1=make_transform_matrix(img_arr,30,low)#濾波result=fshift*F_filter1#將圖像從頻率域轉換到空間域img_d1=np.abs(np.fft.ifft2(np.fft.ifftshift(result)#可視化plt.imshow(array_to_image(img_d1)plt.show()2、空間域法空間域法是一種直接圖像增強算法,分為點運算算法和鄰域去噪算法。點運算算法即灰度變換(伽馬變換、對數(shù)增強)和直方圖修正等。鄰域增強算法分為圖像平滑和銳化兩種。平滑常用算法有均值濾波、中值濾波。銳化常用算法有梯度法(如Roberts
20、梯度法)、算子法(SobeI算子和拉普拉斯算子等)、掩模匹配法、統(tǒng)計差值法等。(1)點運算算法fromskimageimportexposuredefimage_gamma_transform(pilm,gamma):Hl伽馬變換INPUT-單張圖文件OUTPUT-處理后的圖文件Hlimage_arr=np.array(pil_im)image_arr2=exposure.adjust_gamma(image_arr,gamma)returnarray_to_image(image_arr2)defimage_gamma_transform2(pilm,gamma):Hl伽馬變換2(源碼實現(xiàn))
21、INPUT-單張圖文件OUTPUT-處理后的圖文件HIimage_arr=np.array(pil_im)image_arr2=np.power(image_arr/float(np.max(image_arr),gamma)returnarray_to_image(image_arr2*float(np.max(image_arr)defimage_log_transform(pilm):Hl圖像對數(shù)增強INPUT-單張圖文件OUTPUT-處理后的圖文件Hlimage_arr=image_to_array(pilm)iflen(image_arr.shape)=3:foriinrange(3
22、):image_arr:,:,i=255/npog(255+1)*npog(1+image_arr:,:,i)returnarray_t0mage(image_arr)eliflen(image_arr.shape)=2:#image_arr=255/npog(np.max(image_arr)+1)*npog(1+image_arr)image_arr=255/npog(255+1)*npog(1+image_arr)returnarray_t0mage(image_arr)defimage_histeq(pilm):Hl直方圖均衡化INPUT-單張圖文件OUTPUT-處理后的圖文件#計算圖
23、像的直方圖image_arr=image_to_array(pilm)imhist,bins=np.histogram(image_arr.flatten(),256,normed=True)cdf=imhist.cumsum()#累計分布函數(shù)cdf=255*cdf/cdf-1#歸一化#使用累計分布函數(shù)的線性插值計算新的像素值image_arr2=erp(image_arr.flatten(),bins:-1,cdf)returnarray_to_image(image_arr2.reshape(image_arr.shape)(2)鄰域增強算法之平滑均值濾波也稱線性濾波,主要采用
24、鄰域平均法。11111111180i8010010040|105|so90120均值濾波的核心思想是其將整個圖像看成是由很多灰度恒定的小塊組成,相鄰像素間相關性很強(任意一點的像素值,都是周圍N*M個像素值的均值),但噪聲具有統(tǒng)計獨立性。通過均值濾波減少了灰度的突變。均值濾波可以加上兩個參數(shù),即迭代次數(shù)Kernel數(shù)據(jù)大小。一個相同的Kernel,但是多次迭代就會效果越來越好。同樣,迭代次數(shù)相同,Kernel矩陣越大,均值濾波的效果就越明顯。fromscipy.signalimportconvolve2ddefimage_meanilter(pilm):hi均值濾波INPUT-單張圖文件OUT
25、PUT-處理后的圖文件IIIimage_arr=image_to_array(pil_im)dst_arr=np.zeros_like(image_arr)#卷積核-均值算子mean_operator=np.array(1,1,1,1,1,1,1,1,19iflen(image_arr.shape)=3:foriinrange(3):dst_arr:,:,i=convolve2d(image_arr:,:,i,mean_operator,mode=same)eliflen(image_arr.shape)=2:dst_arr=convolve2d(image_arr,mean_operator
26、,mode=same)returnarray_to_image(dst_arr)中值濾波中值濾波也是消除圖像噪聲最常見的手段之一,特別是消除椒鹽噪聲,中值濾波的效果要比均值濾波更好。中值濾波是跟均值濾波唯一不同是,不是用均值來替換中心每個像素,而是將周圍像素和中心像素排序以后,取中值。Neighbourhoodvalj&s:115,119,120,123?124,125,126,127,150Mdianvalue:124fromscipy.ndimageimportfiltersdefimage_medium_filter(image_arr,K=5):IH中值濾波中值平滑只對特別尖銳的信號平滑INPUT-圖像數(shù)組OUTPUT-去噪后的圖像數(shù)組IHiflen(image_arr.shap
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年甘肅交通職業(yè)技術學院單招職業(yè)技能測試題庫完美版
- 2025年度學生安全教育與心理健康維護合同
- 2025年度勞動合同解除補償協(xié)議及員工福利待遇保障書
- 2025年度保險公司與國有企業(yè)單位全面合作協(xié)議
- 2025年度房屋租賃合同訂金及配套設施使用協(xié)議
- 2025年度摩托車進出口代理業(yè)務合同
- 2025年度公司股東內部關于股權結構優(yōu)化與分配的協(xié)議書
- 2025年度委托招聘合同-行業(yè)領軍人才合作項目
- 2025年度員工向公司借款合同變更通知合同
- 2025年度工程車輛司機勞務派遣合同
- 2024年1月浙江高考英語聽力考試試題真題完整版答案詳解+MP3文本
- 《SolidWorks建模實例教程》第5章 裝配建模及實例
- 口腔科護理教學查房
- 《趙匡胤:北宋的開國皇帝》
- 二年級 書法 開學第一課課
- 精神科病人跌倒的預防與處理
- 蒸壓加氣混凝土砌塊干燥收縮檢測記錄11969-2020
- 2023-2024學年第二學期人教版英語五年級教學計劃(含進度表)
- 小學教師師德師風培訓內容(4篇)
- (完整word版)勞動合同書(電子版)正規(guī)范本(通用版)
- DB1522-T 1-2023 農用天氣預報 水稻適宜度
評論
0/150
提交評論