2010-12-02 23 views
0

は、私は私のプロジェクトのための領域成長アルゴリズムを作るセグメンテーション これは私のアルゴリズムシードピクセル 2用領域成長イメージが

(その前に私の写真がされているグレースケール) 1. GET値画素(0,0)です。値シードピクセルを1つの隣接ピクセルと比較する 3. no.3の値がtreshold(T)より小さい場合、次のピクセルに移動してno2に行きます。 4. no.3の値がthreshold(T) (次の10ピクセルについても)ピクセルを白に変更し、新しいシード値ピクセルを得る。戻りフォーマットがある -

私の目標は、私の絵は白線で

をセグメント化され、これはプライベート無効button4_Click(オブジェクト送信者、EventArgsの電子) { // GDI +はまだ私たちにある

私のコードですBGR、RGBではない。 ビットマップデータbmData = RImage.LockBits(新しい矩形(0、0、RImage.Width、RImage.Height)、ImageLockMode.ReadWrite、PixelFormat.Format24bppRgb);

 int stride = bmData.Stride; 
     System.IntPtr Scan0 = bmData.Scan0; 

     unsafe 
     { 
      byte* p = (byte*)(void*)Scan0; 

      int nOffset = stride - RImage.Width * 3; 

      for (int y = 0; y < RImage.Height; ++y) 
      {     
       for (int x = 0; x < RImage.Width; ++x) 
       { 
        //every new line of x must new seed 
        if (x == 0) 
        {        
         //getting new value seed pixel 
         seedR = p[x]; 
         seedG = p[x+1]; 
         seedB = p[x+2]; 
        } 

        //compare value of seed pixel and pixel scan 
        if ((seedR - p[x] >= tred) || (p[x] - seedR >= tred)) 
        { 

         //make white line with change value of pixel 
         for (int i=1; i <= 5; ++i) 
         { 
          p[x] = p[x + 1] = p[x + 2] = 0; 
          x++; 
         } 

         //getting new value of seed pixel 
         seedR = p[x]; 
         seedG = p[x + 1]; 
         seedB = p[x + 2]; 
        } 
        p += 3; 
       } 
       p += nOffset; 
      } 
     } 

     RImage.UnlockBits(bmData); 
    } 

私の問題は、私のイメージは、私は「成長地域」のために何をしていなければなりません画像 の1/3で白になっています? THX

+0

私の知るところでは、あなたのアルゴリズムは根本的に壊れています。あなたの「シード」ピクセルはスキャンラインの最初のピクセルに過ぎません。残りのピクセルを最初のピクセルと比較し、各行でイメージのセグメンテーションを繰り返す方法を繰り返しますか?また、コードを再フォーマットしてください。行の最初の数行は正しくインデントされず、残りは必要以上にインデントされます。また、seedGとseedBはどこにも使われていないので、読みやすくするためにはseedGとseedBを削除するのが最善です。 – misha

答えて

0

私はコメントであなたのアルゴリズムに関するいくつかの質問を残してきたが、私はそれを書いていたように私はあなたが何をしようとしていること画像セグメンテーションではないかもしれないことすべてで実現。

私の目標は、私の写真は、白いラインで

をセグメント化されて、あなたはこのような何かしたい意味するか:はい、あなたはISNに興味がどのような場合

alt text

を'画像分割、それはedge detectionです。そのようなものを実装したい場合は、convolutionについても読んでください。

関連する問題