幾種常用軟件在圖像處理中的應用_第1頁
幾種常用軟件在圖像處理中的應用_第2頁
幾種常用軟件在圖像處理中的應用_第3頁
幾種常用軟件在圖像處理中的應用_第4頁
幾種常用軟件在圖像處理中的應用_第5頁
全文預覽已結束

下載本文檔

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

文檔簡介

幾種常用軟件在圖像處理中的應用

圖像是通過使用各種觀察系統(tǒng)在客觀世界中觀察和獲得的,這些系統(tǒng)可以直接或間接地影響人們的眼睛,并產(chǎn)生視覺感知。這是人們從出生起就體驗到的最重要、最豐富、最具說明性的部分。如果圖像不清晰或不準確,則會影響人們對外部世界的了解。這是圖像處理和加工的一個重要而不可或缺的技術。1圖像的邊緣特征數(shù)字圖像處理即利用計算機對數(shù)字圖像做運算,對效果不佳的圖片,利用數(shù)字化儀器擷取轉換為數(shù)字圖像后,用一定的算法進行運算,可改善圖像信息.在刑事技術中,圖像分析也是重要的組成部分.圖像的邊緣輪廓攜帶有重要信息,要準確分析圖像紋理,就需具備一張邊緣輪廓清晰的圖像.圖像處理需要大量的計算.圖像最基本的特征是邊緣,所謂邊緣是指其周圍像素灰度有階躍變化或屋頂變化的那些像素的集合.它存在于目標與背景、目標與目標、區(qū)域與區(qū)域、基元與基元之間,因此,是圖像分割所依賴的最重要的特征,也是紋理特征的重要信息源和形狀特征的基礎,而圖像的紋理形狀特征的提取又常常要依賴于圖像分割.圖像的邊緣提取也是圖像匹配的基礎,因為它是位置的標志,對灰度的變化不敏感,可作為匹配的特征點.2指向位圖像素值的獲取VisualC++是由Microsoft公司推出的可視化編程語言,它是目前綜合性最高、最強大的軟件開發(fā)工具之一.集成了功能強大的編輯器、編譯器、鏈接器、調試器、APPWizard、ClassWizard、AppStudio等多種多樣的可視化編程工具,利用它可以完成各種各樣應用程序的開發(fā),從低層軟件到直接面向用戶的軟件.C++語言相對其它高級語言有很高的代碼效率,速度比MATLAB代碼快幾倍甚至幾十倍,算法能快速有效地執(zhí)行,具有較好的算法可移植性.但是在編寫一些工程計算程序時,如信號處理中的快速傅立葉變換、數(shù)字圖像處理等就需要比較復雜的算法,編寫得不好就會影響程序的運行速度.程序量大,開發(fā)周期較長,并且要對算法的原理以及設置都要比較熟悉,下面給出一個在VC環(huán)境下的邊緣檢測Sobel算子實現(xiàn)灰度圖像邊緣檢測的函數(shù)實例:voidCDibView::OnMENUSobel(){HANDLEdata1handle;LPBITMAPINFOHEADERlpBi;CDibDoc*pDoc=GetDocument();HDIBhdib;unsignedchar*hData;unsignedchar*data;hdib=pDoc->m-hDIB;BeginWaitCursor();lpBi=(LPBITMAPINFOHEADER)GlobalLock((HGLOBAL)hdib);hData=lpbi+*(LPDWORD)lpbi+256*sizeof(RGBQUAD);//得到指向位圖像素值的指針pDoc->SetModifiedFlag(TRUE);//設修改標志為″TRUE″data1handle=GlobalAlloc(GMEM-SHARE,WIDTHBYTES(lpBi->biWidth*8)*lpBi->biHeight);//申請存放處理后的像素值的緩沖區(qū)data=(unsignedchar*)GlobalLock((HGLOBAL)data1handle);AfxGetApp()->BeginWaitCursor();inti,j,buf,buf1,buf2;for(j=0;jbiHeight;j++)//以下循環(huán)求(x,y)位置的灰度值for(i=0;ibiWidth;i++){if(((i-1)>=0)&&((i+1)biWidth)&&((j-1)>=0)&&((j+1)biHeight)){//對于圖像四周邊界處的向素點不處理buf1=(int)*(hData+(i+1)*WIDTHBYTES(lpBi->biWidth*8)+(j-1))+2*(int)*(hData+(i+1)*WIDTHBYTES(lpBi->biWidth*8)+(j))+(int)(int)*(hData+(i+1)*WIDTHBYTES(lpBi->biWidth*8)+(j+1));buf1=buf1-(int)(int)*(hData+(i-1)*WIDTHBYTES(lpBi->biWidth*8)+(j-1))-2*(int)(int)*(hData+(i-1)*WIDTHBYTES(lpBi->biWidth*8)+(j))-(int)(int)*(hData+(i-1)*WIDTHBYTES(lpBi->biWidth*8)+(j+1));//x方向加權微分buf2=(int)(int)*(hData+(i-1)*WIDTHBYTES(lpBi->biWidth*8)+(j+1))+2*(int)(int)*(hData+(i)*WIDTHBYTES(lpBi->biWidth*8)+(j+1))+(int)(int)*(hData+(i+1)*WIDTHBYTES(lpBi->biWidth*8)+(j+1));buf2=buf2-(int)(int)*(hData+(i-1)*WIDTHBYTES(lpBi->biWidth*8)+(j-1))-2*(int)(int)*(hData+(i)*WIDTHBYTES(lpBi->biWidth*8)+(j-1))-(int)(int)*(hData+(i+1)*WIDTHBYTES(lpBi->biWidth*8)+(j-1));//y方向加權微分buf=abs(buf1)+abs(buf2);//求梯度if(buf>255)buf=255;if(buf<0){buf=0;*(data+i*WIDTHBYTES(lpBi->biWidth*8)+j)=(BYTE)buf;}else*(data+i*lpBi->biWidth+j)=(BYTE)0;}for(j=0;jbiHeight;j++)for(i=0;ibiWidth;i++)*(hData+i*WIDTHBYTES(lpBi->biWidth*8)+j)=*(data+i*WIDTHBYTES(lpBi->biWidth*8)+j);//處理后的數(shù)據(jù)寫回原緩沖區(qū)AfxGetApp()->EndWaitCursor();GlobalUnlock((HGLOBAL)hdib);GlobalUnlock(data1handle);GlobalFree(date1handle);EndWaitCursor();Invalidate(TRUE);}3matlab的特點MATLAB最初是作為矩陣實驗室(MatrixLaboratory)用來提供通往LINPACK和EISPACK矩陣軟件包接口的.后來,它逐漸發(fā)展成為通用科技計算和圖視交互系統(tǒng)的程序語言,其數(shù)據(jù)的基本單元是矩陣.它的指令表達與數(shù)學、工程中常用的習慣形式十分相似,從而使許多用C或Fortran實現(xiàn)起來十分復雜和費時的問題用MATLAB就可以輕松地解決.MATLAB的典型應用包括:數(shù)學計算、算法研究、數(shù)據(jù)分析和計算結果可視化、建模與仿真等.MATLAB有三大特點:一是功能強大.主要包括數(shù)值計算和符號計算、計算結果和編程可視化、數(shù)學和文字統(tǒng)一處理、離線和在線計算.二是界面友好,編程效率高.MATLAB是一種以矩陣為基本單元的可視化程序設計語言,語法結構簡單,數(shù)據(jù)類型單一,指令表達與標準教科書的數(shù)學表達式相近.三是開放性強.MATLAB有很好的可擴充性,可以把它當成一種更高級的語言去使用.使用它很容易編寫各種通用或專用應用程序.在MATLAB中,可以使用圖像處理工具箱中的edge函數(shù),利用之前所提的算子來檢測邊緣.edge函數(shù)提供許多微分算子模板,對于某些模板可以指定其是對水平邊緣還是對垂直邊緣(或者2者都有)敏感(即主要檢測是水平邊緣還是垂直邊緣).edge函數(shù)在檢測邊緣時可以指定一個灰度閾值,只有滿足這個閾值條件的點才視為邊界點.edge函數(shù)的基本調用格式如下:BW=edge(I,′type′,parmeter,…)其中,I表示輸入圖像,type表示使用的算子類型,parmeter則是與具體算子有關的參數(shù).MATLAB的實現(xiàn)程序如下:>>I=imread(′rice1tif′);>>BW1=edge(I,′sobel′);>>BW2=edge(I,′canny′);>>subplot(1,2,1),imshow(BW1)>>subplot(1,2,2),imshow(BW2)4imaq軟件簡介LaboratoryVirtualInstrumentEngineeringWorkbench是由美國國家儀器公司(NI)推出的一個功能強大而又靈活的儀器和分析軟件應用開發(fā)工具.LabVIEW程序稱為虛擬儀器,簡稱為VI.LabVIEW具有圖形化編程、數(shù)據(jù)流傳輸、無限嵌套子VI等優(yōu)點,而且圖形直觀,界面友好,開發(fā)周期短,運行穩(wěn)定.同時,LV提供了大量的虛擬儀器和函數(shù)庫來幫助編程,還配有功能更加強大的工具包.在圖像處理方面提供了NI公司的IMAQVision子模板,它包括300多種機器視覺和圖像處理的函數(shù),分圖像預處理、圖像分割等圖像理解函數(shù)庫和開發(fā)工具,具有灰度、彩色以及二值圖像的顯示、處理(包括統(tǒng)計、濾波和幾何變換)、形狀匹配、斑點分析、計算和測量等功能.用戶可以通過儀器編程與數(shù)據(jù)采集,很便捷地創(chuàng)建功能強大的嵌入式圖像應用與開發(fā)系統(tǒng).IMAQ(imageacquisition)位于框圖窗口(Diagram)上Function選項板中,主要用于控制NI—IMAQ設備采集圖像信息.IMAQ具有緩存管理器,可以同時完成數(shù)據(jù)采集和處理,并且通過對存貯器的直接訪問傳遞數(shù)據(jù).其編程簡單,所包含數(shù)十種子VI,可以滿足各種編程需要.一種可以選用的IMAQ硬件是PCI-1424,用于獲取彩色和灰度圖像,控制數(shù)碼攝像的數(shù)字圖像采集板.具有圖像采集速度快、成像范圍大、圖像分辨率高等優(yōu)點.其時鐘頻率達到50MHz,最高200MB圖像采集,16~80MB的()()板卡存貯器可以滿足大范圍圖像采集,使系統(tǒng)具有更高的實時性.還可兼容RS-422/TTL或LVDS/TTL攝像機,是工業(yè)及科學應用的理想設備.當然,LabVIEW其本身也存在不足,如不能完全提供用戶所需要的驅動程序和調用系統(tǒng)程序實現(xiàn)底層操作,不擅長于完成大量數(shù)據(jù)處理的任務.5基于fpga編程的算法由于以上每一種軟件在進行圖像處理程序設計時都有各自的優(yōu)點和缺點,很多時候也可以采用混合編程的方法來達到更好的效果,比如通過在VisualC++中調用MATLAB引擎的方法進行圖像處理編程,既方便了調用MATL

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論