Removing noise boundaries from segmented binary image that is not part of a curve?
1 次查看(过去 30 天)
显示 更早的评论
I am trying to detect a curve in a image. This curve is broken up in many places. After some segmentation and thresholding my final binary image still has some noise. I will eventually be connecting all the different boundaries but then the noise is also counted as a boundary and that should not be part of the final connected curve. Is there any other function that will analyze boundaries and see if they are part of a curve or just noise??? The noise boundaries are different sizes, different entropies, different perimeters... so I can't just filter by property.
I have so many different images so Im not looking for a specific solution to one picture. I am just wondering what the best way to remove noise in binary images would be. That's why I haven't attached a picture. I have already tried fitting but that does not seem like a good solution. Maybe if somehow the boundary will be in the curve if it is between the coordinates of the previous boundary and the next??? Maybe some sort of pattern recognition?
2 个评论
Image Analyst
2017-8-22
I don't have the Crystal Ball Toolbox yet, so you'll have to show me your image, like people usually do when asking for image analysis advice. There are a variety of ways to detect outliers or noise.
回答(1 个)
Image Analyst
2017-8-23
Try using a Savitzky-Golay filter to smooth the outline. Use a big enough window and low enough order such that the outliers don't affect the curve that much. Then compute distance from actual to fitted, which will be the residuals. Find the histogram of the distances and see what might be a distance that indicates outliers. Then remove those outliers from the data and re-run the Savitzky-Golay filter again with only the good data.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!