Ask Your Question

In the Shi-Tomasi method, is it possible to get the area where the frequency of detected corners is high?

asked 2016-08-13 06:34:14 -0600

riya1405 gravatar image

I am trying to find the area in image where there are maximum corners detected. Is there any possible way to do this?

edit retag flag offensive close merge delete

2 answers

Sort by ยป oldest newest most voted

answered 2016-08-16 03:55:44 -0600

B4silio gravatar image

Depending on what you want to do, you can estimate the density of your corners as follows:

  1. Make a Density Estimator image

    1. Make a 64x64 black image
    2. Draw a 16x16 radius white circle at its center
    3. Gaussian Blur it with a filter size of ~15
    4. You now have a 2D "gaussian" pattern you can use as a density estimator
  2. Create a black image of the same size as your input (say 640x480)

  3. For each of your detected corners
    1. Add the Density Estimator image to the black image with a small weight (you'll be adding a lot of them)
  4. You now have an image that has blobs that become very white if there are a lot of edges in that region, and remains black where you dont have them

You can then use that image to find regions of high density. The only parameter you have to play with is the size of your Estimator image (larger circle == smoother output).

Incidentally, this is exactly what a RBF kernel does.


if you only want to know the "center of mass" of your corners (i.e. you only want ONE answer, and not a density) you can do it much more easily, and FooBar's solution is also perfect for that (and much faster).

edit flag offensive delete link more


I'll try it out. Thanks for your help! :)

riya1405 gravatar imageriya1405 ( 2016-08-20 04:42:52 -0600 )edit

answered 2016-08-13 07:02:59 -0600

You should have a look at algorithms like meanshift or camshift.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2016-08-13 06:34:14 -0600

Seen: 372 times

Last updated: Aug 16 '16