全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2142
推到 Plurk!
推到 Facebook!

BCB6 執行的一個問題

答題得分者是:dllee
rglive
一般會員


發表:1
回覆:2
積分:0
註冊:2007-06-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-06-23 17:49:58 IP:122.124.xxx.xxx 訂閱
會出現下面這個問題,但是同樣"軟體"、"程式",同學不會出現下面這個問題
可以幫我解決一下嗎
謝謝......




dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-06-23 18:14:22 IP:59.105.xxx.xxx 訂閱
請把您的程式片斷或全部列出, 如果很多, 可上傳專案檔。
不然, 一個 Access Violation 的視窗,不可能有人可以協助您解決的,
只知道您的程式可能指標亂指, 元件亂用, 寫到不該寫的位址。
在 IDE 內設 Debug 模式 rebuild 後, 再執行, 大部分的 Access Violation 會
停在您有問題的程式碼上。
------
http://www.ViewMove.com
rglive
一般會員


發表:1
回覆:2
積分:0
註冊:2007-06-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-06-23 18:32:51 IP:122.124.xxx.xxx 訂閱
補上程式碼~!(此程式碼是 灰階圖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;uWidth;u )
{
for(v=0;vHeight;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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-06-23 19:58:44 IP:59.105.xxx.xxx 訂閱
以程式看來,只要 uvImage1->Width, Image1->Height 都是 64,
應該就不會有
Access Violation 了。

作 FFT 可以 include complex.h 使用 complex Template 如
<textarea cols="60" rows="10" class="cpp" name="code"> complex A=complex( 1.0, 0.0))); complex Wn=complex( sin(PI/(double)stepN2), -cos(PI/(double)stepN2)); // 複數給值 Wn = Wn * Wn A * A; // 複數運算 float absWn=abs(Wn); // 複數絕對值 </textarea>

------
http://www.ViewMove.com
rglive
一般會員


發表:1
回覆:2
積分:0
註冊:2007-06-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-06-23 23:23:15 IP:122.124.xxx.xxx 訂閱
dllee站務副站長:
您好~!
我大概知道錯在哪裡,就是....
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Image2->Width = Image1->Width;
Image2->Height = Image1->Height;
for(u=0;uWidth;u )
{
for(v=0;vHeight;v )
{
for(r=0;r<64;r )
{
for(c=0;c<64;c )
--------------------------以下省略-----------------------
並非都是64....
自己設的Image1是80*80的大小
所以會發生錯誤

謝謝你的提醒....
====================================
再請問你學習的方面
如果要學BCB,有沒有推薦的書和網站呢?
小弟略懂C/C ,BCB語法很多不懂。


系統時間:2024-04-26 9:06:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!