關於圖片顯示的問題 |
答題得分者是:JerryKuo
|
poaivy
中階會員 發表:40 回覆:78 積分:53 註冊:2004-08-09 發送簡訊給我 |
請教各位大大
假設我有一張PICTURE在IMAGE1上面
為什麼我已經更改過IMAGE1的PIXEL了再把改過的值映到IMAGE2上去的時候
顯現出來的圖片跟IMAGE1是一模一樣的而沒有根據我的值去改變圖片呢?
圖中有兩張圖片,右邊的是IMAGE2,底下則是他們所各自對應的PIXEL值,
我一直搞不懂為啥值不一樣了圖還是一樣的,請各位大大幫我解惑吧。
附上我的程式碼:
Image1->Picture->Bitmap->PixelFormat=pf24bit; Graphics::TBitmap *BMP = new Graphics::TBitmap(); Byte *ptr=NULL; BMP->Assign(Image1->Picture->Bitmap); for(int y=0;y< >< > |
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
你好: 因為Lena圖本來就是灰階(rgb應該都一樣),而轉換的系數是0.3,0.3,0.4,
總合還是1,假設rgb各為(100,100,100)經過系數轉換(30,30,40)總合100,
而在秀圖時就是用100繪出,繪出的點還是(100,100,100),結果跟沒處理時一樣
所以其實理想上,處理過的圖片是不會變化。除非圖片是彩色,才會有對藍
色加強的效果 而你的值之所以會變動是因為下面這兩行,gray是整數型態,小數位置會被自動
捨棄取整數,dd變得沒有作用,而這捨棄的值就是變動因素。如果把gray改成
浮點數就會有用啦。
int gray=0.3*ptr[x*3] 0.3*ptr[x*3 1] 0.4*ptr[x*3 2];
int dd=(gray/2)*2;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |