2010年11月5日 星期五

影像處理 - HW1

灰階











2位元











4位元










8位元











16位元











32位元










64位元











128位元

















圖片原本都是256色, 突然之間要把它轉成不同bit的灰階,
老實說一開始真的滿頭痛的,
因為光要判斷原本的顏色後來會變成什麼, 就忙得焦頭爛額了,
後來問了同學, 我知道了一個很簡單的方法:
for(i=0 ; i<256>
{pal[0].peRED = i;
pal[0].peGreen = i;
pal[0].peBlue = i;
SetPaletteEntries(GrayPaletteHandle , i , 1 , pal);
}
這是老師教我們, 用來轉灰階的程式碼
我們把它稍做修改, 就可以達到改變成其他bit的辦法
我們把原本i++的地方, 改成我們想要改變的範圍
像是128bit就是原本256的一半
所以把程式碼改成
for(i=0 ; i<256>
{pal[0].peRed = i*2;
pal[0].peGreen = i*2;
pal[0].peBlue = i*2;
for(j=0 ; j<2>
SetPaletteEntries(GrayPaletteHandle , i+j , 1 , pal);
}
就可以做出128bit的圖片了~~
之後依此類推
各種bit的圖片就成功做出來了~
這個作業用到了很多以前都沒用過的指令, 像是GetRValue等等的,
也學到很多以前認為很普通, 但是其實很有深度的影像知識,
舉凡監視器的控制等等, 真的是受益良多。





沒有留言:

張貼留言