2 added 49 characters in body
source | link

The Hough Transform is "right". Because it searches for the most consistent "shape" given the accumulated values. If all you would like to do is to find the center of the spot, there are other techniques (from simple to...less simple) that you could use.

The Hough Transform produces another image that is composed of the accumulated "projections" of the image at its input at different angles. The combined result of this is that:

  1. Points map to arcs

    • Because a point, offset from the centre of rotation appears to the rotating projection as "moving" harmonically.
  2. Lines map to points

    • Because, a line is really a "moving" point and once the rotating projection gets vertical to it, it produces the maximum sum.
  3. Polygons map to points in space with distinct configurations between them.

    • Because of #1,#2 above. A polygon is "interperted" here as a shape that is composed of a set of straight line segments. So, to detect a rectangle (a hollow rectangle defined by 4 lines marking its perimeter), all that you have to do is to look for 4 points poised at specific distances between them. Similarly, to detect a circle you look for specific points in the Hough Space.

When you present a thresholded version of the "blob" to the Hough Transform, it sees a big blogblob of straightlines that is consistent across rotation. Each one of the "lines" is a chord that is picked out of the white-filled circle.

So, what the Hough Transform "sees" is a set of angle indices associated with a large accumulation and a "variance" around that accumulation which represents the uneveness of the blob.

This is probably throwing the circle detection part off because it is impossible for it to detect the "points" it is looking for.

Better results would be expected by running edge detection on the blob prior to sending it to the Hough Transform.

But, more generally, why use the Hough Transform to detect the center of the blob in this scenario? Here are some alternatives:

  • Threshold the image, then find the "bounding box" of the corrdinates of the white pixels (extrema points, the min,max of all white pixels in the X,Y directions), then find the center of that bounding box.

  • Threshold the image, apply a line detection or a convolution matrix to isolate perpheral points and then find the convex hull of those points. In fact, even if you didn't do the line detection or peripheral point detection, the convex hull would still work (but you would be increasing the computational complexity with lots of redundant data). The convex hull will give you the periphery you are looking for and it is also not a bad "generalisation" because the basic assumption behind its usage is that the laser spot is definitely convex...which is a reasonable assumption to make for the blob shape that makes it to the screeen (not necessarily the laser's apperture).

Hope this helps.

The Hough Transform is "right". Because it searches for the most consistent "shape" given the accumulated values. If all you would like to do is to find the center of the spot, there are other techniques (from simple to...less simple) that you could use.

The Hough Transform produces another image that is composed of the accumulated "projections" of the image at its input at different angles. The combined result of this is that:

  1. Points map to arcs

    • Because a point, offset from the centre of rotation appears to the rotating projection as "moving" harmonically.
  2. Lines map to points

    • Because, a line is really a "moving" point and once the rotating projection gets vertical to it, it produces the maximum sum.
  3. Polygons map to points in space with distinct configurations between them.

    • Because of #1,#2 above. A polygon is "interperted" here as a shape that is composed of a set of straight line segments. So, to detect a rectangle (a hollow rectangle defined by 4 lines marking its perimeter), all that you have to do is to look for 4 points poised at specific distances between them. Similarly, to detect a circle

When you present a thresholded version of the "blob" to the Hough Transform, it sees a big blog of straightlines that is consistent across rotation. Each one of the "lines" is a chord that is picked out of the white-filled circle.

So, what the Hough Transform "sees" is a set of angle indices associated with a large accumulation and a "variance" around that accumulation which represents the uneveness of the blob.

This is probably throwing the circle detection part off because it is impossible for it to detect the "points" it is looking for.

Better results would be expected by running edge detection on the blob prior to sending it to the Hough Transform.

But, more generally, why use the Hough Transform to detect the center of the blob in this scenario? Here are some alternatives:

  • Threshold the image, then find the "bounding box" of the corrdinates of the white pixels (extrema points, the min,max of all white pixels in the X,Y directions), then find the center of that bounding box.

  • Threshold the image, apply a line detection or a convolution matrix to isolate perpheral points and then find the convex hull of those points. In fact, even if you didn't do the line detection or peripheral point detection, the convex hull would still work (but you would be increasing the computational complexity with lots of redundant data). The convex hull will give you the periphery you are looking for and it is also not a bad "generalisation" because the basic assumption behind its usage is that the laser spot is definitely convex...which is a reasonable assumption to make for the blob shape that makes it to the screeen (not necessarily the laser's apperture).

Hope this helps.

The Hough Transform is "right". Because it searches for the most consistent "shape" given the accumulated values. If all you would like to do is to find the center of the spot, there are other techniques (from simple to...less simple) that you could use.

The Hough Transform produces another image that is composed of the accumulated "projections" of the image at its input at different angles. The combined result of this is that:

  1. Points map to arcs

    • Because a point, offset from the centre of rotation appears to the rotating projection as "moving" harmonically.
  2. Lines map to points

    • Because, a line is really a "moving" point and once the rotating projection gets vertical to it, it produces the maximum sum.
  3. Polygons map to points in space with distinct configurations between them.

    • Because of #1,#2 above. A polygon is "interperted" here as a shape that is composed of a set of straight line segments. So, to detect a rectangle (a hollow rectangle defined by 4 lines marking its perimeter), all that you have to do is to look for 4 points poised at specific distances between them. Similarly, to detect a circle you look for specific points in the Hough Space.

When you present a thresholded version of the "blob" to the Hough Transform, it sees a big blob of straightlines that is consistent across rotation. Each one of the "lines" is a chord that is picked out of the white-filled circle.

So, what the Hough Transform "sees" is a set of angle indices associated with a large accumulation and a "variance" around that accumulation which represents the uneveness of the blob.

This is probably throwing the circle detection part off because it is impossible for it to detect the "points" it is looking for.

Better results would be expected by running edge detection on the blob prior to sending it to the Hough Transform.

But, more generally, why use the Hough Transform to detect the center of the blob in this scenario? Here are some alternatives:

  • Threshold the image, then find the "bounding box" of the corrdinates of the white pixels (extrema points, the min,max of all white pixels in the X,Y directions), then find the center of that bounding box.

  • Threshold the image, apply a line detection or a convolution matrix to isolate perpheral points and then find the convex hull of those points. In fact, even if you didn't do the line detection or peripheral point detection, the convex hull would still work (but you would be increasing the computational complexity with lots of redundant data). The convex hull will give you the periphery you are looking for and it is also not a bad "generalisation" because the basic assumption behind its usage is that the laser spot is definitely convex...which is a reasonable assumption to make for the blob shape that makes it to the screeen (not necessarily the laser's apperture).

Hope this helps.

1
source | link

The Hough Transform is "right". Because it searches for the most consistent "shape" given the accumulated values. If all you would like to do is to find the center of the spot, there are other techniques (from simple to...less simple) that you could use.

The Hough Transform produces another image that is composed of the accumulated "projections" of the image at its input at different angles. The combined result of this is that:

  1. Points map to arcs

    • Because a point, offset from the centre of rotation appears to the rotating projection as "moving" harmonically.
  2. Lines map to points

    • Because, a line is really a "moving" point and once the rotating projection gets vertical to it, it produces the maximum sum.
  3. Polygons map to points in space with distinct configurations between them.

    • Because of #1,#2 above. A polygon is "interperted" here as a shape that is composed of a set of straight line segments. So, to detect a rectangle (a hollow rectangle defined by 4 lines marking its perimeter), all that you have to do is to look for 4 points poised at specific distances between them. Similarly, to detect a circle

When you present a thresholded version of the "blob" to the Hough Transform, it sees a big blog of straightlines that is consistent across rotation. Each one of the "lines" is a chord that is picked out of the white-filled circle.

So, what the Hough Transform "sees" is a set of angle indices associated with a large accumulation and a "variance" around that accumulation which represents the uneveness of the blob.

This is probably throwing the circle detection part off because it is impossible for it to detect the "points" it is looking for.

Better results would be expected by running edge detection on the blob prior to sending it to the Hough Transform.

But, more generally, why use the Hough Transform to detect the center of the blob in this scenario? Here are some alternatives:

  • Threshold the image, then find the "bounding box" of the corrdinates of the white pixels (extrema points, the min,max of all white pixels in the X,Y directions), then find the center of that bounding box.

  • Threshold the image, apply a line detection or a convolution matrix to isolate perpheral points and then find the convex hull of those points. In fact, even if you didn't do the line detection or peripheral point detection, the convex hull would still work (but you would be increasing the computational complexity with lots of redundant data). The convex hull will give you the periphery you are looking for and it is also not a bad "generalisation" because the basic assumption behind its usage is that the laser spot is definitely convex...which is a reasonable assumption to make for the blob shape that makes it to the screeen (not necessarily the laser's apperture).

Hope this helps.