2010年11月25日 星期四

HW1


原圖


256bit


128bit


64bit


32bit


16bit


8bit


4bit


2bit


之前修過徐雄健老師的機密隱藏的課程,也是利用BCB來撰寫程式利用影像與影像的重疊來做加解密從而得知其中的機密,那時候也有做過圖片灰階不過只做了彩圖轉灰階和變成半色調也就是2bit的圖,這次除了灰階及2bit之外更要利用這概念來改調色盤的部分按bit數來做區分分出數個區塊加以製做出4.8.16.32.64和128bit的圖,雖然之前就有稍微碰過不過因為那是上學期的課所以有點遺忘了,花了些時間才把這次的作業弄出來。

2010年11月6日 星期六

HW1

在上上禮拜的課程結束後
原本以為這個作業應該蠻容易的
沒想到還是卡住了
會以為很容易是因為
剛好這學期也有修一門課  >> "視訊通訊"
有介紹到影像的色階轉換
然後就以為只要簡單的用if else就可以搞定
這是我初步的想法
直接更改pixel的內容

前幾天在做作業的時候才發現沒這麼容易
然後就換個想法...
如果我改變調色盤的數值...應該也可以達到效果!
先試試看黑白兩色
可是失敗了
因為我把調色盤的裡面改成這樣 :

        PaletteEntry.peRed = i/128;
        PaletteEntry.peGreen = i/128;
        PaletteEntry.peBlue = i/128;

我想我一定是作業做太久瘋掉了
這樣子就只會有兩種數值在調色盤裡
0跟1......
真的要改也是這樣子改吧 :

if(i<128){
        PaletteEntry.peRed = 0;
        PaletteEntry.peGreen = 0;
        PaletteEntry.peBlue = 0;
        }else{
        PaletteEntry.peRed = 255;
        PaletteEntry.peGreen = 255;
        PaletteEntry.peBlue = 255;
}

不過這是我今天才想到的...
那時的我只好繼續在像素裡面if else
直到這禮拜五上課前都還在研究
老師上課的時候兩種方法(改調色盤 跟 改像素數值)都有介紹
然後我才想到
如果一直用if else來直接改像素值
黑白兩色還好
128色就麻煩了
所以後來我就參考調色盤的用法完成了

-----------------------------------------------------------------------------------------------
這是原圖,想說用鮮艷一點的應該會比較明顯














程式執行的樣子











-----------------------------------------------------------------------------------------------
256色灰階












▼128色灰階












▼64色灰階












▼32色灰階(開始有些許變化)












▼16色灰階(開始有顯著變化)












▼8色灰階(相當明顯)














▼4色灰階(恩....)














▼2色(黑白)










-----------------------------------------------------------------------------------------------
參考 : 彩色轉灰階

HW01

作業目的:將彩圖轉成灰階,再依想要的黑白程度做調整

-----------------原圖-----------------


















-----------------256色-----------------



















-----------------128色-----------------


















-----------------64色-----------------



















-----------------32色-----------------




















-----------------16色-----------------


















-----------------8色-----------------



















-----------------4色-----------------



















-----------------2色-----------------




















最主要的寫法還是透過老師給的範例程式去更改,根據要求是幾色來將原本灰階256色做分段,從索引0開始等量分段,段數與色數相等。
結果的16色到128色,用肉眼看真的看不出差別,不知道有沒有可能是哪裡做錯了。

2010年11月5日 星期五

hw1

原圖


























*********256****************
























***********128*****************























*************64****************























*********32********************

























***************16******************

























******************8******************


























***************4*********************


























*******************2********************



























前幾周都是跟著老師的進度再打,沒有認真的去思考過程式碼是怎麼運作的

直到出作業後才真的去了解到每一行的指令是在做什麼

這次運用到調色盤的功用,8-bit把256分成8個區塊,4-bit分成4個區塊,2-bit分成兩個

區塊來運行,剛開始一直有點問題,一直沒辦法變成2色的圖片,後來去問同學後才知道

要看灰階值來定義範圍,之後的也慢慢的做出來

我發現程式就想老師講的一樣,要自己去實作,做過之後才會了解一些問題,而不是一昧的

看別人的程式碼來打,自己做過之後才會有所長進!!

Hw01

-原圖-


-互補圖-


-灰階-

-2位元-


-4位元-


-8位元-


-16位元-


-32位元-

-64位元-
-128位元-

之前都是用VC++這套軟體來打程式,對BCB不是很熟悉,在這幾次的接觸之後,覺得BCB這套軟體很方便且迅速,在設計介面部分功能非常的強大,選取你要的物件,在其中輸入程式就能使用,我認為BCB以發展影像處理軟體為主要的方向。

這次的作業中,讓我了解許多有關位元數分配來產生圖像的變化,因為最近專研再研究OpenCV人臉偵測系統,所以剛好有用視訊來轉換互補色、灰階與黑白,之前在做黑白的時候,也是把256色分為2區,0-128之間輸出0,128-256之間輸出255,我用得圖都是單一大區塊顏色,以致於在轉2位元時,看不清楚原圖本來的樣子,之後位元慢慢的提升,轉換過後明顯的差別。

這次收穫最多就是在分區的部分,我只懂當要轉換成黑白(2位元)圖時,用一界線來分成兩半,再來的4位元、8位元...就不知要如何在分下去,接下來我可能把想法用在OpenCV裡面,試試看是否也能跑出同樣的效果。