利用C語言實現(xiàn)計算機圖像處理的方法_第1頁
利用C語言實現(xiàn)計算機圖像處理的方法_第2頁
利用C語言實現(xiàn)計算機圖像處理的方法_第3頁
利用C語言實現(xiàn)計算機圖像處理的方法_第4頁
利用C語言實現(xiàn)計算機圖像處理的方法_第5頁
全文預覽已結束

下載本文檔

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

文檔簡介

本文格式為Word版,下載可任意編輯——利用C語言實現(xiàn)計算機圖像處理的方法利用C語言如何實現(xiàn)計算機圖像處理?以下是我為大家共享的利用C語言實現(xiàn)計算機圖像處理的方法,一起來看看吧。

1.圖像平移

圖像平移只是變更圖像在屏幕上的位置,圖像本身并不發(fā)生變化。

假設原圖像區(qū)域左上角坐標為x0,y0,右下角坐標為x1,y1,將圖像分別沿x和y軸平移dx和dy,那么新圖像的左上角坐標為x0+dx,y0+dy,右下角坐標為x1+dx,y1+dy。坐標平移變換公式為:

x′=x+dx

y′=y+dy在屏幕上實現(xiàn)圖像的移動分為四個步驟:

⑴保存原圖像到緩沖區(qū)。

⑵擦除原圖像。

⑶計算平移后的新坐標。

⑷在新的坐標位置重新顯示原圖像。

其中,擦除原圖像的方法與圖形變換中擦除原圖形的方法一致,在實現(xiàn)中仍采用XOR異或方式畫圖擦除原圖像。對于新坐標值的計算還需要考慮邊界處境,不要在圖像平移后超出允許的屏幕范圍。此外,假設采用C函數getimage和putimage來保存和恢復圖像,那么圖像的大小不能超過64K。

2.圖像顛倒

圖像顛倒是指把定義好的圖像區(qū)域上下翻轉地顯示在屏幕上。分析圖像顛倒的過程,可察覺每行的圖像信息都保持不變,而只是變更了行的依次,將第一行與結果的第n行相互交換,其次行與第n-1行交換……,依此類推,從而實現(xiàn)了圖像的顛倒。只需采用按行交換的方式,即可便當地修改緩沖區(qū)內容,實現(xiàn)圖像的顛倒。根本步驟如下:

1用getimage保存原圖像,并擦除原圖像。

2計算圖像的高度,即行數height;計算圖像寬度width;計算保存一行圖像信息

height=bottom-top+1;

width=right-left+1;

linebytes=width+7/8*4;3利用行交換緩沖區(qū)linebuf在圖像內存緩沖區(qū)中舉行信息交換,即把第一行與最末行交換,第2行與第n-1行交換……,依此類推,直至全部交換完畢。

4把交換后的圖像緩沖區(qū)內容重新顯示在屏幕上。

3.圖像鏡像變換

鏡像變換是指將指定區(qū)域的圖像左右翻轉地顯示在屏幕。分析鏡像變換過程可以察覺:每行圖像信息的處理方式是一致的,而且行依次不發(fā)生變化,只是每一行的像素信息按從左到右的依次舉行了左右顛倒,從而實現(xiàn)了鏡像變換。因此,采用按行逐點變換的方式實現(xiàn)圖像的鏡像。

首先,對于左上角為(left,top,右下角為(right,bottom矩形區(qū)域圖像,給出其中任意點(x0,y0)鏡像變換后的新坐標(x′,y′)的坐標變換公式:

x′=right-x0+left

y′=y0根據以上公式,對各個像素點計算新坐標后,直接把它顯示在屏幕的相應位置上。

假設完全逐點地舉行交換,處理一個像素點就要讀取一次像素值,從而降低了變換速度。由于像素點是依次存放在各個bit位上,每讀取一個字節(jié)就包含了8個像素點的信息,只需設置不同的位屏值bitmask,就可以獲得不同像素點的信息。因此采用按行逐字節(jié)變換的方式,每讀一次就舉行8個像素點的變換,以提高變換速度。

將一矩形區(qū)域的圖像舉行鏡像變換的根本步驟如下:

1用getimage把圖像保存到內存緩沖區(qū),并擦除原圖像。

2計算圖像高度,即行數高度height和寬度width;計算保存一行圖像信息占用的字節(jié)數linebytes。計算公式如下:

height=bottom-top+1;

width=right-left+1;

linebyte=width+7/8*4;3對圖像舉行鏡像。

4釋放內存圖像緩沖區(qū)。

4.圖像旋轉

圖像旋轉是指把定義的圖像繞某一點以逆時針或順時針方向旋轉確定的角度,通常是指繞圖像的中心以逆時針方向旋轉。

假設圖像的左上角為(left,top,右下角為(right,bottom,那么圖像上任意點(x0,y0)繞其中心(xcenter,ycenter逆時針旋轉angle角度后,新的坐標位置(x′,y′)的計算公式為:

xcenter=right-left+1/2+left;

ycenter=bottom-top+1/2+top;

x′=x0-xcentercosθ-y0-ycentersinθ+xcenter;

y′=x0-xcentersinθ+y0-ycentercosθ+ycenter;與圖像的鏡像變換相類似,也采用按行逐點變換的方式實現(xiàn)圖像的旋轉,其步驟如下:

1用getimage()把圖像保存到內存緩沖區(qū),并擦除原圖像。

2計算圖像高度height,寬度width,及保存一行圖像信息占用的字節(jié)數linebytes,計算公式與鏡像變換的計算公式一致。

溫馨提示

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

評論

0/150

提交評論