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

濾波的問題

尚未結案
misifit
一般會員


發表:6
回覆:4
積分:2
註冊:2004-10-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-12-03 18:17:58 IP:59.116.xxx.xxx 未訂閱
以下程式小弟在站上擷取自站上某位大大的作品中其中一小段     
 
  Graphics::TBitmap *Bmp = new Graphics::TBitmap();
  Byte *ptr;
  Bmp->Assign(Image1->Picture->Bitmap );
  for (int i=0;iHeight;i   )
  {
    ptr=(Byte*)Bmp->ScanLine[i];
    for (int j=0;jWidth; j   )
    {
      p1[j][i]=ptr[j*3];
    }
  }
  for (int i=0;iHeight;i   )
  {
      ptr=(Byte*)Bmp->ScanLine[i];
    for (int j=0;jWidth; j   )
    {
      ptr[j*3]=Filter1(j,i);
      ptr[j*3 1]=Filter1(j,i);
      ptr[j*3 2]=Filter1(j,i);
    }
  }
 
上面的程式中Image1是一維的 但是小弟想改成Image[i][j] 二維的 不知道該從哪邊下手 希望哪位熱心的大大幫忙指點一下 非常感謝
fusung
中階會員


發表:26
回覆:169
積分:99
註冊:2003-11-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-12-05 11:53:56 IP:140.114.xxx.xxx 未訂閱
哈囉, misifit:    下面紅色部分應該就是你要的吧!不過效能會比ScanLine方法慢。
 
  Graphics::TBitmap *Bmp = new Graphics::TBitmap();
  Bmp->Assign(Image1->Picture->Bitmap );
  TColor pixel;
  for (int i=0;iHeight;i   )
  {
    for (int j=0;jWidth; j   )
    {
      pixel = Bmp->Canvas->Pixels[i][j];  // 應該就是對應Image1[i][j]的資料
     //抓RGB: GetRValue(pixel), GetGValue(pixel) 和 GetBValue(pixel) 
    }
  }
發表人 - fusung 於 2005/12/05 12:09:49
------


The first step toward proving things for yourself is to understand how others have done it before!

misifit
一般會員


發表:6
回覆:4
積分:2
註冊:2004-10-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-12-09 18:31:08 IP:220.134.xxx.xxx 未訂閱
引言: 哈囉, misifit: 下面紅色部分應該就是你要的吧!不過效能會比ScanLine方法慢。
 
  Graphics::TBitmap *Bmp = new Graphics::TBitmap();
  Bmp->Assign(Image1->Picture->Bitmap );
  TColor pixel;
  for (int i=0;iHeight;i   )
  {
    for (int j=0;jWidth; j   )
    {
      pixel = Bmp->Canvas->Pixels[i][j];  // 應該就是對應Image1[i][j]的資料
     //抓RGB: GetRValue(pixel), GetGValue(pixel) 和 GetBValue(pixel) 
    }
  }
謝謝這位熱心的大大 發表人 - fusung 於 2005/12/05 12:09:49
我叫ㄚ丸
一般會員


發表:16
回覆:35
積分:10
註冊:2005-07-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-12-10 18:10:18 IP:61.229.xxx.xxx 未訂閱
misifit 你好 [引言]  [code]  Graphics::TBitmap *Bmp = new Graphics::TBitmap();   Byte *ptr;   Bmp->Assign(Image1->Picture->Bitmap );   for (int i=0;iHeight;i ) { ptr=(Byte*)Bmp->ScanLine[i]; for (int j=0;jWidth; j ) { p1[j][i]=ptr[j*3];<<就小弟了解這就是將PIXEL存成二維資訊啦 } } for (int i=0;iHeight;i ) { ptr=(Byte*)Bmp->ScanLine[i]; for (int j=0;jWidth; j ) { ptr[j*3]=Filter1(j,i); ptr[j*3 1]=Filter1(j,i); ptr[j*3 2]=Filter1(j,i); } }
misifit
一般會員


發表:6
回覆:4
積分:2
註冊:2004-10-25

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-12-11 23:20:40 IP:218.165.xxx.xxx 未訂閱
感謝樓上這位熱心的ㄚ丸大    小弟覺得可能是我的表達能力不夠好 所以之前的大大所建議的方法好像不是我想要的    在這行程式碼中只能顯示到Image1一張圖片而已  
 
 Bmp->Assign(Image1->Picture->Bitmap );
 
而小弟是想把某個功能 例如:高通濾波 同時用在 4 張或是更多的圖片上 如下 這次表達的意思應該比較清楚了 希望有更多熱心的大大幫忙指教 感激不盡
系統時間:2024-05-07 18:29:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!