Generating a grid around circles in an image
2 次查看(过去 30 天)
显示 更早的评论
Hello,
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?
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/232375/image.jpeg)
1 个评论
Adam Danz
2019-8-2
编辑:Adam Danz
2019-8-2
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.
采纳的回答
David K.
2019-8-2
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.
3 个评论
David K.
2019-8-2
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!
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!