Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Image Processing with either Python or Matlab. Implement a Hough detector for circles. 1. Edge Detection (5 points) Write a function that will accept an
Implement a Hough detector for circles. 1. Edge Detection (5 points) Write a function that will accept an image as input and output a binary edge image. You can use any edge detector you like, and you don't have to implement it yourself, but keep in mind that if you use a filter like Sobel, you will need to apply a threshold, so that the resulting edge image is binary. For this assignment, an image with many circular objects is a good one. Try using Balloon images; Matlab has a "coins" image which works; a micrograph of red blood cells, etc. 2. Create and populate the accumulator (15 points) The accumulator for circles will be three dimensional, as you need x-center, y-center and radius. This will make it hard to visualize, so consistent with my recommendation for a good test image above, include in your homework a view of the accumulator at an appropriate" (one that will show your circles) fixed radius. Please choose a radius that shows something interesting. A brute force algorithm is perfectly ok for this section. 3. Plot circles on your original image (5 points) Write a function that accepts your original image and the accumulator from step 2 and outputs the original image with circles drawn on it. This will require you to find maxima in the accumulator and then use the coordinates of the maxima (x-center, y-center and radius) to draw a circle on the original image. Again, you can use built in functions to draw the circle. 4. CSC482: Non-integral accumulator (10 points) It turns out that there isn't really a need to have a binary edge image. You can use a straight edge-strength image and a real-valued accumulator. Rewrite your code from steps 1-2 to use real values for edge strength and accumulators. Not having a binary edge detector does make the run-time longer, as you need to consider all pixels in the image, rather than those which "have an edge, in the binary case. Explain what differences you see between the binary edges and the real-valued edges. If you see no differences, explain why. 5. CSC482: Polar coordinates (5 points): Because the slope-intercept form of a line can produce unbounded slopes, the trigonometric parameterization of a line makes the Hough line detector more robust. Notice that we also have a trigonometric parameterization of a circle, (r cos 0 a) + (r sin 0 - b) = r, which we could use. Explain concisely why this doesn't make the Hough circle detector any more robust than the standard form of a circle. Your answer must be precise. Hand- waving is not acceptable! -
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started