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

關於讀取8bitsBMP圖檔的程式

尚未結案
supy
一般會員


發表:2
回覆:2
積分:0
註冊:2003-08-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-12 13:21:01 IP:140.118.xxx.xxx 未訂閱
 int *a = new int[256];     int Image_Width,Image_Height;
 Image_Width=Image1->Width;
 Image_Height=Image1->Height;     Byte *ptr;     for (i=0;i<256;i  )
 {
  a[i]=0;
 }     for (j=0;jPicture->Bitmap->ScanLine[j];
  for (i=0;i
請教各位先進,程式中的第一個for迴圈(a[i]=0)是將動態陣列給初值0嗎?有什麼作用呢?請問a[ptr[i]]  是什麼意思呢?如何配置的?不知是位址還是運算值?
小弟是個初學者,請各位高手們幫幫忙,謝謝!
        
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-12 13:41:21 IP:140.135.xxx.xxx 未訂閱
supy您好:
引言: 請教各位先進,程式中的第一個for迴圈(a[i]=0)是將動態陣列給初值0嗎?有什麼作用呢?
嗯,是給動態陣列初值,不過有個更簡潔的方式達到同樣目的
ZeroMemory(a, 256*sizeof(a));
給予所宣告變數的初值是程式寫作的好習慣,否則有可能發生不可預期的錯誤
引言: 請問a[ptr[i]] 是什麼意思呢?如何配置的?不知是位址還是運算值?
因為ptr[i]的值分布在0~255,所以將a[0]~a[255]內的值 1 順心
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-12 13:46:12 IP:61.230.xxx.xxx 未訂閱
引言:
 int *a = new int[256];     int Image_Width,Image_Height;
 Image_Width=Image1->Width;
 Image_Height=Image1->Height;     Byte *ptr;     for (i=0;i<256;i  )
 {
  a[i]=0;
 }     for (j=0;jPicture->Bitmap->ScanLine[j];
  for (i=0;i
程式中的第一個for迴圈(a[i]=0)是將動態陣列給初值0嗎?有什麼作用呢?
A:是的,作用就是設定初始值,-.-||,因為如果不這樣做,第一次a[ptr[i]]  
 就不知道要從哪開始加,我們不能確定它一定是從0開始加的。所以要先歸0。    請問a[ptr[i]]  是什麼意思呢?如何配置的?不知是位址還是運算值?
A:這行的意思為統計影像的色階分佈。一般灰階影像色階是0~255,所以
 ptr[i]值域為0~255, a[ptr[i]]  就統計0~255出現次數。    
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-12 14:07:30 IP:140.135.xxx.xxx 未訂閱
可是我覺得您解釋的比較清楚< >< >
supy
一般會員


發表:2
回覆:2
積分:0
註冊:2003-08-05

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