二值化的問題 |
尚未結案
|
frankh
一般會員 發表:25 回覆:36 積分:12 註冊:2005-05-04 發送簡訊給我 |
void __fastcall TForm1::Button1Click(TObject *Sender) { Graphics::TBitmap *TheBitmap; if (Image1->Picture->Bitmap->Empty==true) Byte *ptr; int r,g,b; int gray; int i,j; TheBitmap=Image1->Picture->Bitmap; for(j=0;j小弟我參考前輩的作品... 想要試者去改成我所需要二值化功能... 原本是有可以拉去改照片黑白深淺... 但我不需要...我只需要直接把照片變黑白.... 可以我改完後...就不能run.. 可不可以請各位幫我看看我哪裡改錯了? 小弟是新手....所以有些地方不是很懂.. |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
void __fastcall TForm1::Button1Click(TObject *Sender) { Graphics::TBitmap *TheBitmap; if (Image1->Picture->Bitmap->Empty==true) //<--不知這行的目的是??可以拿掉 Byte *ptr; int r,g,b; int gray; int i,j; TheBitmap = Image1->Picture->Bitmap; for (j=0; j |
keikojason
初階會員 發表:37 回覆:63 積分:45 註冊:2004-05-10 發送簡訊給我 |
|
frankh
一般會員 發表:25 回覆:36 積分:12 註冊:2005-05-04 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
keikojason
初階會員 發表:37 回覆:63 積分:45 註冊:2004-05-10 發送簡訊給我 |
引言: b = ptr[i*3]; g = ptr[i*3 1]; r = ptr[i*3 2]; gray = 0.299*r 0.587*g 0.114*b;簡單來說ptr[i*3],ptr[i*3],ptr[i*3 2]是組成顏色3要素,像這種表示是因為圖24(Bit)位元所以要"*3",如果要處理32Bit圖就要改成"*4",因為位元數不夠,所以要增加變成"*4",至於" 1"、" 2"假設RGB分別以每8Bit代表ㄧ種,以16進制表示FFFFFF,那如果是32Bit因為有而外加東西(我忘囉什麼),所以我們要呈現圖像位元數不夠所以要變成"*4"。~~~以上是我在書上看見的不知道有沒有錯誤,如果有誤請指正,謝謝賜教~~^^大家互相學習~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |