hello

I use openCv and i want to detect circles in my image
I have search on the net and i find a code that I don't inderstand very well
who can try to explain me this code ?
thanks
Code:
for(int radius = 10; radius<75; radius++)
	{
		// Loop through each pixel
		for(int x=0;x<img->width;x++)
		{
			for(int y=0;y<img->height;y++)
			{
				// Check if the current pixel is an edge
				int value = cvGetReal2D(edges, y, x);
				if(value==0) continue;
			
				// If it is an edge, generate its circle in the parameter space
				for(int theta=0;theta<360;theta++)
				{
					int a = x + radius*cos(theta*3.1412/180);
					int b = y + radius*sin(theta*3.1412/180);

					// Just in case
					if(a<0 || a>=img->width || b<0 || b>=img->height) continue;

					value = cvGetReal2D(imgHough, b, a);
					cvSetReal2D(imgHough, b, a, value+1);
				}
			}
		}