一張圖片的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
沒有留言:
張貼留言