2015-04-04 58 views
0

我已經與如何從emgu CV圈使橡膠板模型的一個問題,這是我的代碼在c#執行Dougman't方法(橡膠板型號)

// looking for iris 

     CircleF[] circles = cannyEdges.HoughCircles(
        cannyThreshold, 
        circleAccumulatorThreshold, 
        3.6, //Resolution of the accumulator used to detect centers of the circles 
        cannyEdges.Height/2, //min distance 
        2, //min radius 
        0 //max radius 
       )[0]; //Get the circles from the first channel 
     var img = myImage.Clone(); 
     var img2 = myImage.Clone(); 

     foreach (CircleF circle in circles) 
      img.Draw(circle, new Bgr(Color.Brown), 10); 
      pictureBox3.SizeMode = PictureBoxSizeMode.StretchImage; 
      pictureBox3.Image = img.ToBitmap(); 
+0

堆棧溢出不是一個來調試你的代碼的地方。如果你有一個特定的問題,並提出這個問題,你更有可能得到幫助。 – jmarkmurphy 2015-04-04 15:09:50

+0

好吧,對不起,我只是一個新手。我認爲堆棧溢出是一個論壇,我可以解決我的問題。非常感謝 – 2015-04-08 11:44:57

+0

好的,具體是什麼你的問題?這是什麼,你認爲是不正確的?你想要發生什麼? – jmarkmurphy 2015-04-08 12:53:09

回答

1

我解決它與我自己的代碼。此代碼從輸入圖像返回到工作表模型116 x 360像素的值。

// Fungsi untuk merubah bentuk donnut menjadi lembaran 
     public Image<Gray, Byte> dougman(Image<Gray,Byte> cit, Double radiris) 
     { 
      double xP, yP, r, theta; 
      Image<Gray, Byte> grayT = new Image<Gray, Byte>(360, 116); 

      for (int i = 0; i < 116; i++) 
      { 
       for (int j = 0; j < 360; j++) 
       { 
        r = i; 
        theta = 2.0 * Math.PI * j/360; 
        xP = r * Math.Cos(theta); 
        yP = r * Math.Sin(theta); 
        xP = xP + radiris + 10; //sekitar 115 
        yP = yP + radiris + 10; 
        grayT[116 - 1- i, j] = cit[(int)xP, (int)yP]; 
       } 
      } 
      return grayT; 
     }