最佳亮度求法 |
答題得分者是:yorkland
|
juneo
高階會員 發表:103 回覆:190 積分:118 註冊:2004-05-13 發送簡訊給我 |
我的程式是參考網站寫出來的
希望能夠把亮度的調整數值改成最佳亮度,讓程式自己分析圖片在調整亮度
請問有人會嗎
程式如下
//--------------------------------------------------------------------------- //亮度函數 Brightness function void __fastcall TForm1::Brightness(Graphics::TBitmap *Bmp,int posi) { Bmp->PixelFormat = pf24bit; Byte* ptr=NULL; for (int y=0;y自然就是寫程式最好的方式, 分享比獲得更快樂--Juneo |
yorkland
高階會員 發表:2 回覆:138 積分:108 註冊:2004-12-17 發送簡訊給我 |
|
juneo
高階會員 發表:103 回覆:190 積分:118 註冊:2004-05-13 發送簡訊給我 |
引言: 最佳亮度的定義是什麼? 也許因人而異。 程式中, 你把每個R,G,B值Offset加上一個定值, 當然在影像上看起來會比較亮。一般影像處理上, 還有auto-level, 會先找出最亮點及最暗點, 然後把最亮點拉到255, 最暗點拉到0, 其他值依等比例計算。 所以大體上, 一種是以offset方式處理, 另一種是以等比例方式處理。我找到類似的文章 http://delphi.ktop.com.tw/topic.php?topic_id=56625 其中 綾小路 提到的方法好像不錯,既簡單又快速 我試著寫出來下面的測試函數 今天沒法測試明天測出看怎樣的效果在跟大家報告 procedure TForm1.Button1Click(Sender: TObject); var x,y : Integer; S1,S2 : String; begin for x:=1 to 256 do begin S1:=FloatToStr(sqrt(x)*16); Memo1.Lines.Add(IntToStr(X) '==' S1); end; for y:=1 to 256 do begin S2:=IntToStr(Trunc(sqrt(y)*16)); Memo2.Lines.Add(IntToStr(y) '==' S2); end; end;自然就是寫程式最好的方式, 分享比獲得更快樂--Juneo |
juneo
高階會員 發表:103 回覆:190 積分:118 註冊:2004-05-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |