Segment certain regions of a binary image
이전 댓글 표시
I have a binary image, which i would like to extract segments (labeled 1,2,3,4) from.

My previous approach to this was to sum the non-zero pixels on each line, and eventually get a plots with peaks. Using this plot, I determined the location of each peak using the built-in findpeaks function, along with their widths, in order to isolate these portions. This worked fairly well. However, using widths and location of the peaks does not give an accurate representation of the starting and ending points of the peaks.
I'm wondering if there is an alternative approach to this. Any suggestions would be appreciated.
Attached is a .mat file containing the binary data for this image.
댓글 수: 6
Image Analyst
2015년 11월 10일
It would not be too hard except for the region between 2 and 3. One could make the argument that 2 and 3 are just one big region instead of 2 separate regions. How "messy" can the region between regions become?
seven_dwarves
2015년 11월 10일
편집: seven_dwarves
2015년 11월 11일
Image Analyst
2015년 11월 17일
How many of these do you have to do? Thousands? Or just a few dozen? If it's just a few dozen, what's wrong with just using imrect() or rbbox() to manually outline the boxes?
seven_dwarves
2015년 11월 17일
Image Analyst
2015년 11월 17일
Do you always know there will be straight segments in between the bushy ones? What if the whole plant looks like a bushy pine tree with no long "trunk-only" sections? Could that happen? Actually your section 3 and 4 don't have a straight run between them, and it's not straight after 4 either. How is some algorithm to know that segment 4 should not go all the way to the bottom? It looks like there are so many variations that you're going to have to have tons of special "rules" in any algorithm that can detect special cases/shapes.
seven_dwarves
2015년 11월 18일
답변 (1개)
카테고리
도움말 센터 및 File Exchange에서 Image Arithmetic에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!