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

請問一問題關於型態學問題

尚未結案
小慶
一般會員


發表:45
回覆:31
積分:15
註冊:2004-09-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-29 15:19:06 IP:61.221.xxx.xxx 未訂閱
各位前輩....小弟我有一個問題......就是 我想load一張640*480的圖.....然後作型態學中的膨脹和消蝕....依我想做幾次就按幾次botton 雖然我有看過本站關於有膨脹和消蝕方面的各家說法 但是...只能作一次..... 我的問題...可能前輩覺得很簡單..... 希望前輩能協助小弟程式該怎麼寫..... 正在努力中的小弟.......
JerryKuo
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-29 15:32:54 IP:220.135.xxx.xxx 未訂閱
引言: 各位前輩....小弟我有一個問題......就是 我想load一張640*480的圖.....然後作型態學中的膨脹和消蝕....依我想做幾次就按幾次botton 雖然我有看過本站關於有膨脹和消蝕方面的各家說法 但是...只能作一次..... 我的問題...可能前輩覺得很簡單..... 希望前輩能協助小弟程式該怎麼寫..... 正在努力中的小弟.......
請多多利用本站搜尋功能-試試搜尋"細線化"
小慶
一般會員


發表:45
回覆:31
積分:15
註冊:2004-09-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-29 15:43:46 IP:163.23.xxx.xxx 未訂閱
前輩......我收尋了"細線化"........ 但是沒有我要的東西.... 不過還是要謝謝你.... 正在努力中的小弟...
wei7278
一般會員


發表:16
回覆:19
積分:12
註冊:2004-09-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-30 17:57:35 IP:61.228.xxx.xxx 未訂閱
您好: 你只要用一個global的array把做完運算後的影像之所有pixel存下來,下一次做直接讀array進來,就可以一直做了
auslk
初階會員


發表:35
回覆:77
積分:32
註冊:2003-02-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-11-01 18:46:14 IP:211.23.xxx.xxx 未訂閱
您所面臨的問題,應該是邊界沒設定好, 所以造成你無法一直作!     以下給您參考!     Best Regards, Pauli 11/01/04'     
//====膨脹=9 點 ====副程式=============    int Dilation(int i, int j)
{
  int Ex, temp;
  int p[10];
  p[1] = p1[i - 1][j - 1];
  p[2] = p1[i][j - 1];
  p[3] = p1[i   1][j - 1];
  p[4] = p1[i - 1][j];
  p[5] = p1[i][j];
  p[6] = p1[i   1][j];
  p[7] = p1[i - 1][j   1];
  p[8] = p1[i][j   1];
  p[9] = p1[i   1][j   1];      // 單點處理
  // 邊緣處理 (0,0)->(640,480)      if(i == 0 & j == 0)           // (0,0) 該點處理
  {
    Ex = (p[5]   p[6]   p[8]   p[9]);
    if(Ex <= 0)
      return (0);
    else
      return (255);      }
  else if(i == 0 & j > 0 & j < 480)     // (0,1~479)
  {
    Ex = (p[2]   p[3]   p[5]   p[6]   p[8]   p[9]);
    if(Ex <= 0)
      return (0);
    else
      return (255);
  }      else if(i == 0 & j == 480)    // (0,480) 該點處理
  {
    Ex = (p[2]   p[3]   p[5]   p[6]);
    if(Ex <= 0)
      return (0);
    else
      return (255);
  }
  else if(i > 0 & i < 320 & j == 480)   // (1~639,480)
  {
    Ex = (p[1]   p[2]   p[3]   p[4]   p[5]   p[6]);
    if(Ex <= 0)
      return (0);
    else
      return (255);
  }
  else if(i == 640 & j == 0)    // (640,0) 該點處理
  {
    Ex = (p[4]   p[5]   p[7]   p[8]);
    if(Ex <= 0)
      return (0);
    else
      return (255);
  }
  else if(i > 0 & i < 640 & j == 0)     // (1~639,0)
  {
    Ex = (p[4]   p[5]   p[6]   p[7]   p[8]   p[9]);
    if(Ex <= 0)
      return (0);
    else
      return (255);
  }
  else if(i == 640 & j == 480)  // (640,480) 該點處理
  {
    Ex = (p[1]   p[2]   p[4]   p[5]);
    if(Ex <= 0)
      return (0);
    else
      return (255);
  }
  else if(i == 640 & j > 0 & j < 480)   // (640,1~479)
  {
    Ex = (p[1]   p[2]   p[4]   p[5]   p[7]   p[8]);
    if(Ex <= 0)
      return (0);
    else
      return (255);
  }
  else if(i > 0 & i < 639 & j > 0 & j < 479)
  {
    Ex = (p[1]   p[2]   p[3]   p[4]   p[5]   p[6]   p[7]   p[8]   p[9]);
    if(Ex <= 0)
      return (0);
    else
      return (255);
  }
}    //---------------------------------------------------------------------------    //====侵蝕=9 points ====副程式=============    int Erosion(int i, int j)
{
  int Er;
  int p[10];
  p[1] = p1[i - 1][j - 1];
  p[2] = p1[i][j - 1];
  p[3] = p1[i   1][j - 1];
  p[4] = p1[i - 1][j];
  p[5] = p1[i][j];
  p[6] = p1[i   1][j];
  p[7] = p1[i - 1][j   1];
  p[8] = p1[i][j   1];
  p[9] = p1[i   1][j   1];      // 邊緣處理 (0,0)->(640,480)      if(i == 0 & j == 0)           // (0,0) 該點處理
  {
    Er = (p[5] & p[6] & p[8] & p[9]);
    if(Er <= 0)
    {
      return (0);
    }
    else if(Er >= 255)
    {
      return (255);
    }
  }
  else if(i == 0 & j > 0 & j < 480)     // (0,1~479)
  {
    Er = (p[2] & p[3] & p[5] & p[6] & p[8] & p[9]);
    if(Er <= 0)
    {
      return (0);
    }
    else if(Er >= 255)
    {
      return (255);
    }
  }      else if(i == 0 & j == 480)    // (0,480) 該點處理
  {
    Er = (p[2] & p[3] & p[5] & p[6]);
    if(Er <= 0)
    {
      return (0);
    }
    else if(Er >= 255)
    {
      return (255);
    }
  }
  else if(i > 0 & i < 640 & j == 480)   // (1~639,480)
  {
    Er = (p[1] & p[2] & p[3] & p[4] & p[5] & p[6]);
    if(Er <= 0)
    {
      return (0);
    }
    else if(Er >= 255)
    {
      return (255);
    }
  }
  else if(i == 640 & j == 0)    // (640,0) 該點處理
  {
    Er = (p[4] & p[5] & p[7] & p[8]);
    if(Er <= 0)
    {
      return (0);
    }
    else if(Er >= 255)
    {
      return (255);
    }
  }
  else if(i > 0 & i < 640 & j == 0)     // (1~639,0)
  {
    Er = (p[4] & p[5] & p[6] & p[7] & p[8] & p[9]);
    if(Er <= 0)
    {
      return (0);
    }
    else if(Er >= 255)
    {
      return (255);
    }
  }
  else if(i == 640 & j == 480)  // (640,480) 該點處理
  {
    Er = (p[1] & p[2] & p[4] & p[5]);
    if(Er <= 0)
    {
      return (0);
    }
    else if(Er >= 255)
    {
      return (255);
    }
  }
  else if(i == 640 & j > 0 & j < 480)   // (640,1~479)
  {
    Er = (p[1] & p[2] & p[4] & p[5] & p[7] & p[8]);
    if(Er <= 0)
    {
      return (0);
    }
    else if(Er >= 255)
    {
      return (255);
    }
  }
  else if(i > 0 & i < 639 & j > 0 & j < 479)
  {
    Er = (p[1] & p[2] & p[3] & p[4] & p[5] & p[6] & p[7] & p[8] & p[9]);
    if(Er <= 0)
    {
      return (0);
    }
    else if(Er >= 255)
    {
      return (255);
    }
  }
} 
系統時間:2024-06-28 15:08:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!