Clear Filters
Clear Filters

Generating a grid around circles in an image

4 views (last 30 days)
I have created a costas array on matlab. Say I recreate this array on paper and take a picture of it. I want to detect if it is a costas array. Is there an way to make an interactive grid that I can drag over the image and detect if there is a black dot within each cell of the grid?
  1 Comment
Adam Danz
Adam Danz on 2 Aug 2019
Edited: Adam Danz on 2 Aug 2019
You could load the image onto an axis. Then using image processing tools to get the coordinates of each black point. Once you decide on the width and height of your grid squares, you could merely +/- 1/2 of those dimentions from each data point so that each coordinate becomes a range in the x and y directions. Then determine if any ranges overlap. That doesn't fulfill all of the requirements of a Costas Array but it should get you started.

Sign in to comment.

Accepted Answer

David K.
David K. on 2 Aug 2019
So I felt like making it interactive so I used the built in guide function in matlab to create a GUI. Attached are the two files. Basically it lets you type in the x and y intervals for your grid. Then upon clicking update it will show the grid lines, put a red star at the center of each grid box that it believes the black dot is in and then will do a basic check for costas array.
Inside the m file is a lot of stuff that makes the gui work. You don't need most of it but I put a big stuff happens here comment to help find the main things. There is a function called testCostaArray where I do the test to see if any of the points are in the same column or horizontal. I think it should be set up well enough to let you check for the other conditions that make something a costas array since I did not put those in.
Godd luck, hope this helps.
David K.
David K. on 2 Aug 2019
Oops, meant to mention the image requirement in my answer.
I do not actually know much about costas arrays so I was mainly focusing on the interactive part and determining where each dot is.
I am only checking that there are no repeat dots in each row or column since that is an easy condition. I did not know that (1) might be a condition, and I left (2) to be filled in by the questioner. I set it aside as a function in hopes that it would be a good enough framework to add the changes to the determination logic. If you want to add those condition in, go for it!
Andrew Luce
Andrew Luce on 2 Aug 2019
This is great, the only thing that I would ahve to say is that it would be nice if you can anchor one of the dots so you wouldn't spend so much time looking for where the dots line up

Sign in to comment.

More Answers (0)


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!