BCB6 執行的一個問題 |
答題得分者是:dllee
|
rglive
一般會員 發表:1 回覆:2 積分:0 註冊:2007-06-23 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
|
rglive
一般會員 發表:1 回覆:2 積分:0 註冊:2007-06-23 發送簡訊給我 |
補上程式碼~!(此程式碼是 灰階圖64*64大小 轉傅立葉)
謝謝你的幫忙 //--------------------------------------------------------------------------- #include #pragma hdrstop #include <math.h><br /> #include "Unit1.h" #define PI 3.14159 //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; float FR[64][64],FI[64][64],H[64][64],H1,D,g=0; float Re=0,Im=0,I_Re=0,I_Im=0; int r=0,c=0,u=0,v=0; float temp=0,var=0; int n; float offset,f0; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //開檔--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { if (OpenPictureDialog1->Execute()) { Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName); } } //Fourier--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Image2->Width = Image1->Width; Image2->Height = Image1->Height; for(u=0;u { for(v=0;v { for(r=0;r<64;r ) { for(c=0;c<64;c ) { g = GetGValue(Image1->Canvas->Pixels[r][c]); var = 2*PI/64*(u*r v*c); temp = pow(-1,r c); Re = g * temp * cos(var); Im = g * temp * sin(var); } } Re = Re/64; Im = Im/64; FR[63-u][63-v] = Re; FI[63-u][63-v] = Im; g = sqrt(pow(Re,2) pow(Im,2)); if(g>255) g = 255; if(g<0) g = 0; Image2->Canvas->Pixels[u][v] = (TColor)RGB(g,g,g); } } }
編輯記錄
rglive 重新編輯於 2007-06-23 18:34:16, 註解 無‧
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
以程式看來,只要 uvImage1->Width, Image1->Height 都是 64,
應該就不會有 Access Violation 了。 作 FFT 可以 include complex.h 使用 complex Template 如 <textarea cols="60" rows="10" class="cpp" name="code"> complex
------
http://www.ViewMove.com |
rglive
一般會員 發表:1 回覆:2 積分:0 註冊:2007-06-23 發送簡訊給我 |
dllee站務副站長:
您好~! 我大概知道錯在哪裡,就是.... void __fastcall TForm1::Button2Click(TObject *Sender) { Image2->Width = Image1->Width; Image2->Height = Image1->Height; for(u=0;u { for(v=0;v { for(r=0;r<64;r ) { for(c=0;c<64;c ) 並非都是64.... 自己設的Image1是80*80的大小 所以會發生錯誤 謝謝你的提醒.... ==================================== 再請問你學習的方面 如果要學BCB,有沒有推薦的書和網站呢? 小弟略懂C/C ,BCB語法很多不懂。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |