數字圖像處理課件 第9章 圖像處理軟件設計基礎學習資料_第1頁
數字圖像處理課件 第9章 圖像處理軟件設計基礎學習資料_第2頁
數字圖像處理課件 第9章 圖像處理軟件設計基礎學習資料_第3頁
數字圖像處理課件 第9章 圖像處理軟件設計基礎學習資料_第4頁
數字圖像處理課件 第9章 圖像處理軟件設計基礎學習資料_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第9章圖像處理軟件設計基礎9.1用Matlab語言進行圖像處理9.2用C語言進行圖像處理9.3用硬件描述語言進行圖像處理2025/4/192Matlab圖像處理工具箱—ImageProcessingToolbox提高圖像質量,使模糊的圖像變得清晰;提取圖像的有效特征,以便進行模式識別;通過圖像變換和有效編碼來壓縮其頻帶或數據,以便傳輸或存儲。9.1用Matlab語言進行圖像處理

2025/4/193一、圖像處理工具箱函數包含一百余個函數,按其內容劃分為以下幾類:⑴、圖像顯示函數;⑵、圖像文件輸入、輸出函數;⑶、圖像幾何操作函數;⑷、圖像像素值及統計函數;⑸、圖像分析函數;⑹、圖像增強函數;⑺、線性濾波函數;2025/4/194⑻、二維線性濾波器設計函數;⑼、圖像變換函數;⑽、圖像鄰域及塊操作函數;⑾、二值圖像操作函數;⑿、基于區域的圖像處理函數;⒀、顏色圖操作函數;⒁、顏色空間轉換函數;⒂、圖像類型和類型轉換函數。一、圖像處理工具箱函數(cont.)2025/4/195分別為:真彩色圖像(RGBimages);索引色圖像(indeximages);灰度圖像(intensityimages);二值圖像(binaryimages)。

由于有的函數對圖像類型有限制,這四種類型可以用工具箱的類型轉換函數相互轉換。

二、工具箱支持的圖像類型2025/4/196Matlab可操作的圖像文件包括:BMPHDFJPEGPCXTIFFXWD2025/4/197三、常用圖像操作

圖像的讀寫與顯示操作:用imread()讀取圖像,imwrite()輸出圖像。圖像顯示于屏幕:imshow()。圖像進行裁剪:imcrop()。圖像的插值縮放:imresize()。圖像的旋轉:imrotate()

2025/4/198四、圖像增強功能

圖像增強是數字圖像處理過程中常用的一種方法,目的是采用一系列技術去改善圖像的視覺效果或將圖像轉換成一種更適合于人眼觀察和機器自動分析的形式。2025/4/199灰度直方圖均衡化。

灰度變換法。平滑與銳化濾波。圖像增強方法2025/4/19101、灰度直方圖均衡化均勻量化的自然圖像的灰度直方圖通常在低灰度區間上頻率較大,使得圖像中較暗區域中的細節看不清楚,采用直方圖修整可使原圖像灰度集中的區域拉開或使灰度分布均勻,從而增大反差,使圖像的細節清晰,達到增強目的。直方圖均衡化可用histeq()函數實現。

2025/4/19112、灰度變換法照片或電子方法得到的圖像,常表現出低對比度即整個圖像偏亮或偏暗,為此需要對圖像中的每一像素的灰度級進行灰度變換,擴大圖像灰度范圍,以達到改善圖像質量的目的。這一灰度調整過程可用imadjust()函數實現。

2025/4/19123、平滑濾波平滑技術用于平滑圖像中的噪聲,基本采用在空間域上的求平均值或中值。或在頻域上采取低通濾波,因在灰度連續變化的圖像中,我們通常認為與相鄰像素灰度相差很大的突變點為噪聲點,灰度突變代表了一種高頻分量,低通濾波則可以削弱圖像的高頻成分,平滑了圖像信號,但也可能使圖像目標區域的邊界變得模糊。2025/4/19134、銳化濾波而銳化技術采用的是頻域上的高通濾波方法,通過增強高頻成分減少圖像中的模糊,特別是模糊的邊緣部分得到了增強,但同時也放大了圖像的噪聲。在Matlab中,各種濾波方法都是在空間域中通過不同的卷積模板即濾波算子實現,可用fspecial()函數創建預定義的濾波算子,然后用filter2()或conv2()函數在實現卷積運算的基礎上進行濾波。2025/4/1914五、圖像邊緣檢測和圖像分割功能邊緣檢測是一種重要的區域處理方法,邊緣是所要提取目標和背景的分界線,提取出邊緣才能將目標和背景區分開來。如果一個像素落在邊界上,那么它的鄰域將成為一個灰度級變化的帶。對這種變化最有用的兩個特征是灰度的變化率和方向。2025/4/1915五、圖像邊緣檢測和圖像分割功能(cont.)邊緣檢測算子可以檢查每個像素的鄰域并對灰度變化率進行量化,也包括對方向的確定,其中大多數是基于方向導數掩模求卷積的方法。Matlab工具箱提供的edge()函數可針對sobel算子、prewitt算子、roberts算子、log算子、zero-cross和canny算子實現檢測邊緣的功能。基于灰度的圖像分割方法也可以用簡單的Matlab代碼實現。2025/4/1916六、圖像變換功能圖像變換技術是圖像處理的重要工具,常運用于圖像壓縮、濾波、編碼和后續的特征抽取或信息分析過程。Matlab工具箱提供了常用的變換函數,如fft2()與ifft2()函數分別實現二維快速傅立葉變換與其逆變換,dct2()與idct2()函數實現二維離散余弦變換與其逆變換。Matlab還提供了如二值圖像的膨脹運算dilate()函數、腐蝕運算erode()函數等基于數學形態學與二值圖像的操作函數。2025/4/1917七、Matlab圖像處理工具箱運用實例

為了說明Matlab語言是一種簡潔,可讀性較強的高效率編程軟件,通過運用圖像處理工具箱中的有關函數,對圖“board.tif”為一幅電路板的原圖像進行處理。該圖像右邊的剪切圖像為從“board.tif”中剪切出的將用于分析的子圖像塊。為了便于分析與觀察,把子圖像塊旋轉180度置于水平位置并把該圖存在名為“board_new.bmp”

的圖像文件中。2025/4/19181、圖像讀取、顯示、截取、旋轉、寫入x=imread(‘board.tif’);imshow(x);y=imcrop(x);figure,imshow(y);z=imrotate(y,180);figure,imshow(z);imwrite(z,‘board_new.bmp’,‘bmp’);2025/4/1919截取旋轉180度1、圖像讀取、顯示、截取、旋轉、寫入(cont.)2025/4/19202、對灰度圖進行直方圖均衡化處理先判斷看所給圖像是否為一真彩色圖像?如果是,將其轉換為灰度圖像,以下所有的進一步處理均采用經過灰度化處理后的圖像作為原圖。對灰度圖進行直方圖均衡化處理。通過比較灰度原圖和經均衡化后的圖形可見圖像變得清晰,均衡化后的直方圖形狀比原直方圖的形狀更理想。2025/4/19212、對灰度圖進行直方圖均衡化處理(cont.)m=imread(‘board_new.bmp’);n=rgb2gray(m);imshow(n);figure,imhist(n);I=histeq(n);figure,imshow(I);figure,imhist(I);2025/4/1922“board_new.bmp”的灰度化圖像(原圖)均衡化前直方圖2、對灰度圖進行直方圖均衡化處理(cont.)2025/4/1923經直方圖均衡化后的圖像均衡化后直方圖2、對灰度圖進行直方圖均衡化處理(cont.)2025/4/19243、灰度圖像平滑與銳化處理灰度圖像平滑與銳化處理。Matlab圖像工具箱中有多種平滑與銳化濾波函數,也可以自定義濾波算子。在此我們采用可根據圖像的局部方差來調整濾波器輸出的自適應濾波對圖像進行平滑,及采用拉氏算子運算使圖像的模糊部分得到增強。2025/4/19253、灰度圖像平滑與銳化處理(cont.)x=imread(‘board_new.bmp’);x=rgb2gray(x);x=double(x);p=wiener2(x);imshow(p,[]);h=[010;1-41;010];q=conv2(x,h,‘same’);r=x-q;figure,imshow(r,[]);2025/4/1926采用自適應濾波平滑利用拉氏算子卷積銳化3、灰度圖像平滑與銳化處理(cont.)“board_new.bmp”的灰度化圖像(原圖)常用的圖像處理函數ImreadImshowImwriteImadjustEdgeImhistImfilterMedfilt2Fft2Dct2Wavedec29.2用C語言進行圖像處理C語言與MatLab語言的區別:MatLab是用于科學計算的編程環境,編程風格與C語言類似。但是MatLab集成了針對各不同學科的常用的計算函數,往往C語言或其他語言需要幾百行甚至幾千行的代碼,在MatLab中一個語句就可以完成。因此,MatLab編程很容易。MatLab的缺點是效率低,運行速度慢。但是MatLab提供了與C或C++的接口,可在VC中調用MatLab中的函數,進而可以提高速度。常用的圖像處理編程一般可在VC或VS中實現。9.2用C語言進行圖像處理OpenCV(OpenSourceComputerVisionLibrary)是一個基于開源發行的跨平臺計算機視覺庫,具有輕量級、高效率等優點,由一系列C函數和少量C++類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現了500多個圖像處理和計算機視覺方面的通用算法。在VC中調用OpenCV庫函數,可以大大加快圖像處理軟件開發速度。FirstOpenCVProgram1.#include<cxcore.h>2.#include<highgui.h>3.#include<math.h>4.intmain(intargc,char**argv){5.CvPointcenter;6.doublescale=-3;7.IplImage*image=argc==2?cvLoadImage(argv[1]):0;8.if(!image)return-1;9.center=cvPoint(image->width/2,image->height/2);10.for(inti=0;i<image->height;i++)11.for(intj=0;j<image->width;j++){12.doubledx=(double)(j-center.x)/center.x;13.doubledy=(double)(i-center.y)/center.y;14.doubleweight=exp((dx*dx+dy*dy)*scale);15.uchar*ptr=&CV_IMAGE_ELEM(image,uchar,i,j*3);16.ptr[0]=cvRound(ptr[0]*weight);17.ptr[1]=cvRound(ptr[1]*weight);18.ptr[2]=cvRound(ptr[2]*weight);}19.

cvSaveImage(“copy.png”,image);20.cvNamedWindow("test",1);21.cvShowImage("test",image);22.cvWaitKey();23.return0;}RadialgradientTheProgramQuickReviewshortandclearprogram,noneedtomesswithMFC/GTK/QT/…,cross-platformcvLoadImage()andcvSaveImage()providetheeasiestwaytosave/loadimagesofvariousformats.cvPointandother“constructor”functionsmakethecodeshorterandallow1-linefunctionscall.CV_IMAGE_ELEM()–prettyfastwaytoaccessimagepixelscvRound()isveryfastandconvenientwaytocastfloat/doubletointcvNamedWindow()creates“smart”windowforviewinganimagecvShowImage()showsimageinthewindowcvWaitKey()delaystheexecutionuntilkeypressedoruntilthespecifiedtimeoutisover1.#include<cxcore.h>2.#include<highgui.h>3.#include<math.h>4.intmain(intargc,char**argv){5.CvPointcenter;6.doublescale=-3;7.IplImage*image=argc==2?cvLoadImage(argv[1]):0;8.if(!image)return-1;9.center=cvPoint(image->width/2,image->height/2);10.for(inti=0;i<image->height;i++)11.for(intj=0;j<image->width;j++){12.doubledx=(double)(j-center.x)/center.x;13.doubledy=(double)(i-center.y)/center.y;14.doubleweight=exp((dx*dx+dy*dy)*scale);15.uchar*ptr=&CV_IMAGE_ELEM(image,uchar,i,j*3);16.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論