線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1826
推到 Plurk!
推到 Facebook!

求psnr的問題???

答題得分者是:silverfoxkkk
bvd
一般會員


發表:9
回覆:12
積分:4
註冊:2006-10-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-01-11 17:44:16 IP:124.8.xxx.xxx 訂閱
各位高手:小弟我用BCB寫了一個求psnr的式子,
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Graphics::TBitmap *Orgimage=new Graphics::TBitmap,
*Harrinverse=new Graphics::TBitmap;
Orgimage->Assign(Image1->Picture->Bitmap);
Harrinverse->Assign(Image2->Picture->Bitmap);
Orgimage->PixelFormat=pf8bit;
Harrinverse->PixelFormat=pf8bit;
Byte *ptr1,*ptr2;
int H=Image1->Height;
int W=Image1->Width;
double se=0.0,mse=0.0,sum=0.0,psnr=0.0;
for(int j=0;j {
ptr1=(Byte*)Orgimage->ScanLine[j];
ptr2=(Byte*)Harrinverse->ScanLine[j];
for(int i=0;i {
se=(ptr1[i]-ptr2[i])*(ptr1[i]-ptr2[i]);
sum =se;
}
}
delete Harrinverse;
delete Orgimage;
mse=sum/H*W;
psnr=255*255/mse;
Edit1->Text=psnr;
}
但總是會出現Access violation at a dress 0040232B in module 'Project1.exe' read of address 01900001.的錯誤訊息,而後
在紅色字體的地方反白,大概是那有問題,弄了好久不知如何解??能不能麻煩各位高手幫我看一下程式,指導一下,感激不盡!!
------
加強磨鍊
silverfoxkkk
一般會員


發表:6
回覆:12
積分:8
註冊:2004-11-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-01-11 18:47:16 IP:140.117.xxx.xxx 訂閱
會不會是因為 ptr1[i] 跟 ptr2[i] 的資料型態都是 byte 的關係?
byte 的範圍為 0 ~ 255,而沒辦法表示負數。
se=(ptr1[i]-ptr2[i])*(ptr1[i]-ptr2[i]);
bvd
一般會員


發表:9
回覆:12
積分:4
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-01-11 22:33:33 IP:124.8.xxx.xxx 訂閱
感謝銀狐大的回應,想要再跟你請問一下,ptr如果不用byte的話,那要如何宣告??
才會容下負值??
失禮,我算是新手,如果問問題的那種sense怪怪的話,多包含!包含!!
------
加強磨鍊
silverfoxkkk
一般會員


發表:6
回覆:12
積分:8
註冊:2004-11-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-01-12 05:31:30 IP:140.117.xxx.xxx 訂閱
你好:
小弟也是新手,一起研究看看,小弟也沒把程式拿去執行,
試著改成以下作法,再看看囉。
se=((double)ptr1[i]-(double)ptr2[i])*((double)ptr1[i]-(double)ptr2[i]);
另外此 address 的錯誤,可能是 ScanLine 時所發生,
因為 Image1 的 width 並不一定會等於圖片 的width,同理 height 也是如此,
int H=Image1->Height; 改為 image1->Picture->Height;
int W=Image1->Width; 改為 image1->Picture->Width;
bvd
一般會員


發表:9
回覆:12
積分:4
註冊:2006-10-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-01-12 12:19:29 IP:124.8.xxx.xxx 訂閱
很感謝銀狐兄的提示!
------
加強磨鍊
系統時間:2024-05-06 4:26:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!