請問陣列值轉到IMAGE裡面為啥會出錯@@ |
尚未結案
|
k99
一般會員 發表:8 回覆:16 積分:4 註冊:2005-07-27 發送簡訊給我 |
請問各位大大 我在陣列裡面作運算後 然後把陣列裡面的值轉到IMAGE->canvas->pixels[x][y] 可是問題來了~~我做了2個label~~
label1對應到陣列的[x][y] label2對應到IMAGE->canvas->pixels[x][y] 大部分的值轉過去後會自動轉成整數(自動轉不是小弟寫的 是BCB自己幫我轉的) 小於0的會自動變成0 可是陣列裡面ㄉ值有些是在 -512.XXX(小數點) 附近~~~
label1是顯示-512.XXX 可是label2卻是顯示 13160660 ~還有一堆都是在-512附近的 label2看到的值都是大的驚人 = = 會不會差太多阿 只有-512附近會這樣而已 其他負更大的會自動轉成0 小弟作都是這邊錯 是不能像我這樣直接轉嗎 ?? 煩請大大指教 ^.^
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
k99
一般會員 發表:8 回覆:16 積分:4 註冊:2005-07-27 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
k99
一般會員 發表:8 回覆:16 積分:4 註冊:2005-07-27 發送簡訊給我 |
回大大 我看不懂YBlock怎麼宣告的耶 = =
有負的值是因為我再做dct的關西~~當初原作者是把dct後的值放在 YBlock 裡面 而我想做的是把YBlock 陣列裡面的值再拿到Image裡面而已 只是遇到-512都會出錯 我也不知道為啥 >"< 還是說我這麼做是不對的 = = 沒關西 謝謝大大幫我這麼多 我這次先不要拿到image裡面試試 先寫IDCT看會不會得到原圖 ^^ 還有請問大大 我開圖是開800*600的 所以dct後的YBlock也是800*600 但因為我看不懂她的宣告 那如果小弟想要另外開個800*600的陣列 是否是這樣寫 float aa[800][600] ; ???
如果是的話 那我處理完後 是否可以把aa丟到image裡面呢 ?? 但是大大講過型態的問題 image市不市只會接受正整數呢?? 不然怎麼都會幫我把負值自動轉成0 而有小數點的都去掉了 ??
|
k99
一般會員 發表:8 回覆:16 積分:4 註冊:2005-07-27 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
您可以參考下面連結的作品比較快
< href="http://delphi.ktop.com.tw/topic.php?TOPIC_ID=33309">http://delphi.ktop.com.tw/topic.php?TOPIC_ID=33309
【BCB】【發表】影像處理轉換篇 by MilesWamg
一灰階圖,(Lena.bmp 256*256),以下五種轉換執行結果、轉換後圖形、能量分佈、總誤差、PSNR與SNR。含DFT(Discrete Fourier Transform運算)運算 、Discrete Hartly Transform 運算、Discrete Consin Transform 運算 、Walsh運算與Hadaman運算。以Bolrad C 實作,其功能如下。 1.開啟檔案;載入一bmp圖檔。 2.儲存檔案將輸出或輸入圖區的圖形純程bmp檔。 3.轉換方式選擇;有五種方式提供圖形轉換。 4.轉換方式選擇:可選擇轉換與轉換加反轉換,結果輸出於”輸出結果” 。 5.灰階化/載入:將輸入之圖形載入記憶體並將彩色圖形灰階化。 6.執行:執行轉換功能,score bar為轉換後保留元素N*N範圍。(8*8中留下N*N) 7.Error: 計算:總誤差,PSNR,SNR。 8.proof:計算轉換矩陣與其轉置矩陣之乘積是否為單位矩陣。 9.plus:轉換結果(不含反向運算)將小於0大於255之值濾除。 ( if value <0 then value =0; if value >255 then value =255) 觀察轉換中結果。 其執行檔編譯成獨立執行檔!! |
k99
一般會員 發表:8 回覆:16 積分:4 註冊:2005-07-27 發送簡訊給我 |
大大 可以再問你一個問題嗎 我自己寫了一個轉DCT後再做IDCT轉回來的程式 可是每次轉回來的值都跟原先的不一樣 我也檢查了很多遍 但就是找不到原因 可以麻煩大大幫我看一下我的程式哪邊有錯嗎 = = 或是給我提醒哪邊有錯誤的觀念 ^0^
typedef struct { unsigned char gg_arr[8][8]; unsigned char g_arr[8][8]; float dct_arr[8][8]; } void DCT(float result[8][8], unsigned char source[8][8]) { float C[8],Cos[8][8]; float temp; int x,y,u,v; for(x=0;x<8;x ) { for(y=0;y<8;y ) { Cos[x][y]=cos((2*x 1)*y*(3.14)/16); } } C[0]=1/sqrt(2); for(x=1;x<8;x ) C[x]=1; for(u=0;u<8;u ) for(v=0;v<8;v ) { temp=0.0; for(x=0;x<8;x ) for(y=0;y<8;y ) temp =Cos[x][u]*Cos[y]*( >/ >= >* >[ > >. >. >.>> >. >. >.>> >.> |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |