2009年12月16日 星期三

HW3

R:


G:


B:


R.G.B三個混合:



這次的作業是做出與photoshop相同功能的直方圖,內容真的很不簡單,

要先計算出RGB的分布,再來就是使用BCB的功能,將圖片畫出來。

剛開始一直卡在要如何將數值轉換成直線圖,而且要並排在一起,

最後還是參照別人的程式。直方圖主要是用到move to跟line to這兩個函式,

一開始必須要將RGB的直抓取出來,計算不同的RGB值的出現次數,

分別找出RGB個別出現次數的最大值,以最大值當分母,將各RGB值當分子,

乘上100%來求各個直線的比例,以避免超出你所設的Image的高。

然後在Image上面畫出一條條的直線,

Image3->Canvas->MoveTo(i,300)是用來決定起點位置,

Image3->Canvas->LineTo(i,300-t)是用來決定終點位置,

使用這兩個函式就可以將RGB的值轉換成直方圖了。

最後要分別出R.G.B三個顏色,使用Image1->Canvas->Pen->Color=XXX,

XXX分別代入RED.BLUE.GREEN就可以將線條的顏色改變了。

將前面部分完成之後,我還設定了3個按鈕,分別為R.G.B,

將程式碼分做3個部分,以顏色來區分,

點擊了之後就會依照所點擊的顏色畫圖,如果再點擊其他的顏色的話,

由於程式碼只有寫到畫圖的部分,所以會將原先的覆蓋上去,

最後一張圖就是顯示如果3個按鈕都點過一次的話,會將所有的分布顯示在一起。

這次的心得有學到將R.G.B的數值讀取出來,然後計算出現的個數,

最後使用MOVE TO以及LINE TO將線條畫出來,

還有Pen->Color來改變畫筆的顏色。

只是中位數以及其他老師所要求的部分,我實在是不知道要怎麼去取...

中位數的部分,我在想是不是將所有的點的分布,全部相加起來,

然後再除以總數?只是作起來好像怪怪的,所以就沒有把功能放上去了。

沒有留言:

張貼留言