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來改變畫筆的顏色。
只是中位數以及其他老師所要求的部分,我實在是不知道要怎麼去取...
中位數的部分,我在想是不是將所有的點的分布,全部相加起來,
然後再除以總數?只是作起來好像怪怪的,所以就沒有把功能放上去了。
沒有留言:
張貼留言