精通Visual C++圖像編程之位圖變換(學習筆記)

圖像變換,主要是指數字圖像的幾何變換(或稱爲空間變換),即圖像中點與點之間的空間映射關係。

一、一般變換表達式;

二、仿射變換;

1、平移

2、旋轉

3、縮放

4、剪切


透視變換;

多項式變換;

圖像重採樣

插值;

抗混疊技術;


5、2    裁剪與合併

剪切

裁剪

合併

5、3縮放

改變DIB圖像大小

改變像框大小

5、4旋轉

圖像旋轉90o的實現步驟:

(1)創建一個新的DIB其顏色信息與源位圖相同,注意新位圖的寬、高分別爲源位圖的高和寬。

(2)根據位圖的存儲爲大小,分別對1位、4位、8位和24位的位圖進行旋轉,即對DIB的每一像素進行旋轉變換。應該注意:

      1)DIB的每一個掃描行都必須填補到4字節(32位)的DWORD邊界。通過檢查DIB的BITMAPINFOHEADER結構的biWidth域,以確定每行像素的總位數是否是32的倍數,如果不是,則必須考慮填補的位數。

      2)DIB位圖存儲圖像的順序是從左到右,從上到下;因此,存儲的位圖實際上是顯示的位圖圖像的倒置。在編寫位圖變換的算法時,應該考慮到這一特點所造成的影響。

      3)對於像素位數爲1的DIB位圖,其每個像素只佔一位,每個字節存儲八個像素。字節的最高位對象於最左邊的像素。

      4)在沒有壓縮的像素位數爲8的DIB位圖中,每個字節存儲一個像素。

      5)在像素位數爲24的DIB位圖中,每個像素佔3個字節,從左到右的每一字節分別存儲藍、綠、紅的顏色值。


5、5 鏡像

水平鏡像和垂直鏡像



本章小結:

》圖像變換涉及的基本概念,包括空間變換(映射)、圖像重建、重採樣、抗混疊處理等;

》大部分的空間變換都可以用一個3 X 3的變換矩陣來表示;

》仿射變換是最簡單的空間變換,常見的包括平移、旋轉、縮放和剪切等都可用仿射變換來實現;

》實現了DIB圖像變換的主要操作函數,包括裁剪與合併、縮放、旋轉、鏡像;

》以DIB圖像變換函數爲基礎,在CDib類中增加圖像變換操作功能。


發佈了13 篇原創文章 · 獲贊 9 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章