Hough Transform for Circles

Поделиться
HTML-код
  • Опубликовано: 13 дек 2024
  • In this video, I have explained how we can use Hough transform for circles.

Комментарии • 34

  • @ramkumarsakthivel9412
    @ramkumarsakthivel9412 4 года назад +2

    Great video... there is a small mistake in the equation of the circle. It should be (x-a)^2+(y-b)^2=r^2 and not just r.

    • @pratikian
      @pratikian  4 года назад +3

      You are right. Thanks for pointing it out.

  • @ohmy__gah159
    @ohmy__gah159 Год назад

    This helped me greatly to understand Hough Transform! Thank you

  • @kevinpriestley0110
    @kevinpriestley0110 2 года назад

    Thank you, you explained it very well.

  • @drpiyushjoshi4544
    @drpiyushjoshi4544 2 месяца назад

    Thank you very much

  • @nehar8729
    @nehar8729 Год назад

    excellent explanation

  • @akainu3668
    @akainu3668 3 года назад +1

    bro how can i modify your code for general curve like lame curve or an ellipse?

    • @pratikian
      @pratikian  3 года назад

      At line 14, 15 you will have to change the xp and yp
      xp=a*cos(ang);
      yp=b*sin(ang);
      where a is the major axis and b is the minor axis of ellipse. You can put the parametric equation of the curve you want to find here.

    • @akainu3668
      @akainu3668 3 года назад

      @@pratikian thanks a lot for replying bro actually I had to do this for lame curve so can you help me with some code for it, as on net very complex codes are there

    • @pratikian
      @pratikian  3 года назад

      @@akainu3668 I could try

  • @christianbarnes8963
    @christianbarnes8963 4 года назад

    How did you implement detection of more than one circle with different radius

    • @pratikian
      @pratikian  4 года назад +1

      So for that you can make a vector of the radius of the different circles that is there in the image and run the algo for each radius

    • @christianbarnes8963
      @christianbarnes8963 4 года назад

      @@pratikian can you help me out with it in your implementation to see how it will work I tried using a for loop but so many smaller circles

    • @pratikian
      @pratikian  4 года назад +1

      Okay I will try. Acctually my code is not very robust meanwhile you can also try other implementations
      in.mathworks.com/matlabcentral/fileexchange/4985-circle-detection-via-standard-hough-transform
      Hope that helps

    • @christianbarnes8963
      @christianbarnes8963 4 года назад

      All right thank you

  • @ayushprakash3890
    @ayushprakash3890 4 года назад +2

    correction : in the first slide, the equation of the circle should contain r^2 and not r

    • @pratikian
      @pratikian  4 года назад

      Yes you are right. Thanks for pointing it out 😇

  • @sl3w
    @sl3w 4 года назад

    I dont understand. I have fixed R and I know x, y point of edge. How I can get(calculate) a and b to increment accumulator? Which a, b I must use? Which range of a,b? From what to what?

    • @sl3w
      @sl3w 4 года назад +1

      Am I right? I fixing a: a_min = X - R; a_max = X + R;
      after that I do
      for (i = a_min; i

    • @pratikian
      @pratikian  4 года назад

      So what do X and Y mean here? Apart from that I feel that the algorithm is fine it should work.
      here is an algorithm that I had used.
      first define a circle with radius r.
      ang=0:0.1:2*pi;
      xp=r*cos(ang);
      yp=r*sin(ang);
      Now we just have to move this circle so that it centers at the edge point (x,y).
      Now make an accumulator matrix which is of size (m+2*r, n+2*r) (where the image size is m x n )
      now run a for loop for all the edge points x,y detected
      make the circle in the accumulator matrix centered at every edge point (x,y)
      v = x + xp;
      w = y + yp;
      increment the accumulator at v,w position
      accumulator(v,w) += 1;
      Finally choose the point which is having the maximum value in the accumulator.
      That is the required center of the circle.
      here you can see the matlab code for the above algorithm
      drive.google.com/drive/u/0/folders/1UTIgcj0Z-dKo67zNZj8qwmueH0g3OPp0

  • @jm10oct
    @jm10oct 3 года назад

    THANK YOU

  • @akainu3668
    @akainu3668 3 года назад +1

    also can you explain ur code?

    • @pratikian
      @pratikian  3 года назад +1

      here is an algorithm that I had used.
      first define a circle with radius r.
      ang=0:0.1:2*pi;
      xp=r*cos(ang);
      yp=r*sin(ang);
      Now we just have to move this circle so that it centers at the edge point (x,y).
      Now make an accumulator matrix which is of size (m+2*r, n+2*r) (where the image size is m x n )
      now run a for loop for all the edge points x,y detected
      make the circle in the accumulator matrix centered at every edge point (x,y)
      v = x + xp;
      w = y + yp;
      increment the accumulator at v,w position
      accumulator(v,w) += 1;
      Finally choose the point which is having the maximum value in the accumulator.
      That is the required center of the circle.
      here you can see the matlab code for the above algorithm
      drive.google.com/drive/u/0/folders/1UTIgcj0Z-dKo67zNZj8qwmueH0g3OPp0

    • @pratikian
      @pratikian  3 года назад

      You can also look at some other implementations my code is not very Robust
      in.mathworks.com/matlabcentral/fileexchange/4985-circle-detection-via-standard-hough-transform

  • @royalzak4019
    @royalzak4019 4 года назад

    Thanks man i am going to practice over here

  • @jtrtsay
    @jtrtsay 3 года назад

    sooo good!

  • @chetaniske9108
    @chetaniske9108 3 года назад

    can i get all coordinates of (a,b)

    • @pratikian
      @pratikian  3 года назад

      I did not get your question. What do you mean by all the co ordinates of (a,b)

    • @chetaniske9108
      @chetaniske9108 3 года назад

      @@pratikian yes I want all centes coordinates in a given image for all detected circles

  • @chetanahadadi3089
    @chetanahadadi3089 4 года назад

    can you please share me the code

    • @pratikian
      @pratikian  4 года назад

      Sure here is the link for the matlab code
      drive.google.com/drive/mobile/folders/1UTIgcj0Z-dKo67zNZj8qwmueH0g3OPp0?usp=sharing
      This code is not very robust it is for a constant r , it is good for understanding purpose

  • @surajpatil3247
    @surajpatil3247 3 года назад

    greatttttttttttttttttttttttttt

  • @happypumpkinpm7434
    @happypumpkinpm7434 Год назад

    Great video, thanks for the explanation. I have a question regarding your code, I wonder if your code is based on hough circle for unknown radius? how do you draw the accumulator array for an unknown radius? your code: drive.google.com/drive/u/0/folders/1UTIgcj0Z-dKo67zNZj8qwmueH0g3OPp0