detect square in image
显示 更早的评论

i want to detect square shape only in image. how can i do this using matlab?
采纳的回答
更多回答(2 个)
Sean de Wolski
2011-12-29
1 个投票
Those squares are very well defined.
- Set a less than threshold to make the dark colors true and everything else false. ( BW = I<thresh )
- Perform a connected components analysis ( doc bwconncomp)
- Then regionprops with EulerNumber specified.
- Apply a threshold to the regions matching the EulerNumber ( idx = [stats(:).EulerNumber] == x ) of a sample square.
- Build a new matrix of false. ( BWnew = false(CC.ImageSize))
- Set the indices in the connected components analysis corresponding to the matching EulerNumber to true. ( BWnew(vertcat(CC.PixelIdxList{idx})) = true)
In theory you'll have a mask of the boxes.
Naz
2011-12-29
编辑:John Kelly
2013-11-14
1 个投票
I just thought of an alternative idea. Instead of detecting a square, you should register the image (filled form) of interest with the raw image. Then, since you know the coordinates of each square, you can just check the pixels at those coordinates for the white/black values.
类别
在 帮助中心 和 File Exchange 中查找有关 Region and Image Properties 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
