How to dilate a straight line width?

2 views (last 30 days)
peyush
peyush on 16 Jul 2015
Commented: peyush on 17 Jul 2015
I have a binary image having a finite straight line at arbitrary angle...I need to dilate the image in such a way that the line width increases after dilation without changing/dilating its length...how should I do this...any help is highly appreciated

Accepted Answer

Image Analyst
Image Analyst on 17 Jul 2015
It's just a bit of algebra. You need to find the perpendicular lines at the endpoints. The slope is -1 over the slope of the main line. Then you can use point slope formula like you learned in 10th grade. Do that for each endpoint. I think you can do this because you're a talented engineer. Then use the 4 line segment endpoints and plug into poly2mask(). Then dilate and multiply by the mask to "chop off" the ends.
mask = poly2mask(x,y,rows,columns);
fatLineImage = imdilate(binaryImage, true(30));
finalImage = fatLineImage .* uint8(mask);

More Answers (0)

Categories

Find more on Function Creation in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!