C語言圖像處理方法_第1頁
C語言圖像處理方法_第2頁
C語言圖像處理方法_第3頁
全文預覽已結束

下載本文檔

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

文檔簡介

1、C 語 言 圖 像 處 理 方 法1 .圖像平移圖像平移只是改變圖像在屏幕上的位置,圖像本身并不發(fā)生變化。假設原圖像區(qū)域左上角坐標為(xO, yO),右下角坐標為(x1, y1),將圖像分別沿x和y軸平移 dx和dy,則新圖像的左上角坐標為(xO + dx, yO + dy),右下角坐標為(x1 + dx, y1 + dy) 。坐標平移變換公式為:x' = x + dxy,= y + dy在屏幕上實現(xiàn)圖像的移動分為四個步驟: 保存原圖像到緩沖區(qū)。 擦除原圖像。 計算平移后的新坐標。 在新的坐標位置重新顯示原圖像其中,擦除原圖像的方法與圖形變換中擦除原圖形的方法一致,在實現(xiàn)中仍采用XO異

2、或方式畫圖擦除原圖像。對于新坐標值的計算還需要考慮邊界情況,不要在圖像平移后超出允許的屏 幕范圍。此外,如果采用C函數(shù)getimage()和putimage()來保存和恢復圖像,則圖像的大小不能 超過64K。2. 圖像顛倒 圖像顛倒是指把定義好的圖像每行的圖像信息都保持不變, 行與第 n 1 行交換 方便地修改緩沖區(qū)內容,實現(xiàn)(1) 用getimage()保存原圖像,(2) 計算圖像的高度,即行數(shù) height = bottom top width = right left 1;linebytes = (width 7) 8 4;(3) 利用行交換緩沖區(qū) linebuf 在圖像內存緩沖區(qū)中進行

3、信息交換,即把第一行與最末行交換,第2行與第n1行交換,依此類推,直至全部交換完畢。(4) 把交換后的圖像緩沖區(qū)內容重新顯示在3. 圖像鏡像變換 鏡像變換是指將指定區(qū)域的圖像左右翻轉地圖像信息的處理方式是相同的,而且行順序 序進行了左右顛倒,從而實現(xiàn)了鏡像變換。因此,采首先,對于左上角為( left, top) ,右下角為 意點(x0, y0 )鏡像變換后的新坐標(x'x' = right x0 + left y' = yO根據(jù)以上公式,對各個像素點計算新坐標后,直接把 如果完全逐點地進行交換,處理一個像素點就要讀取一次 于像素點是順序存放在各個 bit 位上,每讀取一

4、個字節(jié)就 的位屏值bitmask,就可以獲得不同像素點的信息。因此采用按行逐字節(jié)變換的方式,每讀一次 就進行 8個像素點的變換,以提高變換速度。將一矩形區(qū)域的圖像進行鏡像變換的基本步驟如下:只上下翻轉地顯示在屏幕上。分析圖像顛倒的過程,可發(fā)現(xiàn)改變了行的順序,將第一行與最后的第n行相互交換,第,依此類推,從而實現(xiàn)了圖像的顛倒。只需采用按行交換的方式,即可 倒。基本步驟如下: 除原圖像。算圖像寬度 width ;計算保存一行圖像信息right,分析鏡像變換過程可以發(fā)現(xiàn):每行 每一行的像素信息按從左到右的順 行逐點變換的方式實現(xiàn)圖像的鏡像。的ttom) 矩形區(qū)域圖像,給出其中任的相應位置上。,從而降

5、低了變換速度。由8個像素點的信息,只需設置不同(1) 用getimage()把圖像保存到內存緩沖區(qū),并擦除原圖像。(2) 計算圖像高度,即行數(shù)高度 height 和寬度 width ;計算保存一行圖像信息占用的字節(jié)數(shù) linebytes 。計算公式如下:height = bottom top 1;width = right left 1;linebyte = (width 7) 8 4;(3) 對圖像進行鏡像。(4) 釋放內存圖像緩沖區(qū)。4.圖像旋轉 圖像旋轉是指把定義的圖像繞某一點以逆時針或順時針方向旋轉一定的角度,通常是指繞圖 像的中心以逆時針方向旋轉。假設圖像的左上角為( left, t

6、op), 右下角為( right, bottom) ,則圖像上任意點( x0,假設圖像的左上角為(left, top),右下角為(right, bottom),則圖像上任意點(xO,yO)繞其中心(xcenter, ycenter)逆時針旋轉angle角度后,新的坐標位置(x' , y ')的計算公式為:xcenter = (right left ycenter = (bottom top x' = (xO xcenter) cos y' = (xO xcenter) sin 1) 2 left; 1) 2 top;0 (yO yce nter) sin 0 + (y0 yce nter) cos0 xcenter;0 ycenter;與圖像的鏡像變換相類似,也采用按行逐點變換的方式實現(xiàn)圖像的旋轉,其步驟如下:,計算(1) 用getimage ()把圖像保存到內存緩沖區(qū),并擦除原圖像。(2) 計算圖像高度height,寬度width,及保存一行圖像信息占用的字節(jié)數(shù)linebytes 公式與鏡像變換的計算公式相同。(3) 對圖像逐行進行旋轉變換。(4) 釋放內存圖

溫馨提示

  • 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

提交評論