2014年3月12日 星期三

影像的縮放與旋轉

一張圖片的RGB是存在data的一維陣列裡,所以我們透過上面的方法把它轉成二維陣列,一張圖片的寬度width還要乘3,也就是3個channel(R,G,B)就等於widthstep

data裡面的儲存方式:
BGRBGRBGR
BGRBGRBGR
BGRBGRBGR

Nearest Neighbor Image Scaling

經過各種複雜的演算法之後我們會算出哪個顏色該放在哪個位子,再將三個顏色放回照片的data裡,
以下是資料的儲存方式:
Blue[][]:              Red[][]:              Green[][]:                 data:
B B B                  R R R               G G G                       BGRBGRBGR
B B B                  R R R               G G G                       BGRBGRBGR
B B B                  R R R               G G G                       BGRBGRBGR

以放大兩倍為例,只要將顏色放兩次即可,如下
BGRBGR BGRBGR BGRBGR
BGRBGR BGRBGR BGRBGR

BGRBGR BGRBGR BGRBGR
BGRBGR BGRBGR BGRBGR

BGRBGR BGRBGR BGRBGR
BGRBGR BGRBGR BGRBGR

data裡的資料就變成這樣

---------------------------------------------------------------------------------------------- 



旋轉



我們先建立一個一樣大小的二陣列維nBlue,nGreen,nRed來儲存旋轉後的的顏色再用一樣的方法放回影像的data裡




參考資料
http://yester-place.blogspot.tw/2008/07/iplimage2_11.html

沒有留言:

張貼留言