RGB轉HSI,轉不回RGB? |
尚未結案
|
wei7278
一般會員 發表:16 回覆:19 積分:12 註冊:2004-09-25 發送簡訊給我 |
小弟我寫的程式如下,轉HSI後轉回RGB已經和原圖不一樣,我已測試過將HSI to RGB的轉換公式copy到RGB to HSI裡,轉出來就是對的,分成兩個就是錯的,我實在找不出哪裡有錯,請各位幫幫忙
double ptemp[1920][480]; void __fastcall TForm1::RGB2HSIClick(TObject *Sender) { Graphics::TBitmap *Bmp = new Graphics::TBitmap(); Byte *ptr; double r,g,b; double hh,ss,ii; double temp; float pi=3.1416; Bmp->Assign(Image1->Picture->Bitmap); for(int j=0;j |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
您應該還記得
Color Conversion Algorithms
http://www.cs.rit.edu/~ncs/color/t_convert.html 您可以看到其中有部分的轉換是使用程式,在程式中用了 max/min 等函數,
基本上,這樣是無法轉回的。您可以這樣想,如果有某色 (R,G,B) 在轉成
(H,S,I) 時,如果 S 取的是 R,G,B 的 max/min 的組合運算,那表示 S 這個參數變成只有取 R,G,B 的某個元件資料,在轉回時,也許就只有那個 max/min 的顏色會比較對,因為轉之前也只有它有貢獻,其他的已在轉換時就捨掉了,轉回時自然就有誤。
如: 該網頁中的 RGB to HSV & HSV to RGB 可逆轉換的應該要像是 該網頁中的
RGB to YIQ & YIQ to RGB
RGB to XYZ & XYZ to RGB
兩個座標系是使用一個轉換矩陣來作轉換,只要那個轉換矩陣有反矩陣,
就表示這個轉換是可逆的。 吃軟也吃硬 dllee.ktop.com.tw StatPlus 系統資源監測器 @ SoftKing VMASK - ViewMove Automation Software Kernel
------
http://www.ViewMove.com |
wei7278
一般會員 發表:16 回覆:19 積分:12 註冊:2004-09-25 發送簡訊給我 |
|
Teresa_Chang
一般會員 發表:41 回覆:42 積分:16 註冊:2004-05-04 發送簡訊給我 |
|
wei7278
一般會員 發表:16 回覆:19 積分:12 註冊:2004-09-25 發送簡訊給我 |
|
Teresa_Chang
一般會員 發表:41 回覆:42 積分:16 註冊:2004-05-04 發送簡訊給我 |
|
raiseofevil
一般會員 發表:13 回覆:1 積分:2 註冊:2006-12-09 發送簡訊給我 |
|
akway
一般會員 發表:1 回覆:11 積分:2 註冊:2006-08-17 發送簡訊給我 |
我也想知道該如何秀出處理後的圖片也
剛接觸bcb,對它的元件使用不是很熟 image->Picture->Bitmap->Assign(bmp); 似乎沒有辦法顯示 我有想過先存到檔案再LoadFromFile一次 可是效能會很差 想跟您請教有什麼方法可以直接秀出處理好的影像bmp ===================引 用 wei7278 文 章=================== 引言: 請問這個RGB to HSI的程式,要怎麼把圖片呈現出來?您好: 通常我們轉HSI只是要他的值,處理完後還是要轉回RGB秀出來 如果真要秀的話 就是把HSI的值直接放回image裡 以我程式為例就是放回ptr陣列裡 不過秀出來應該是沒什麼意義 純粹好看而已 |
a29375943
一般會員 發表:1 回覆:2 積分:0 註冊:2008-06-04 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |