How to extract specific edges from an image?

4 views (last 30 days)
Hello eveyone, I have an image of a car door from which I have to find generate a trajectory from specific edges of the car door. Let me expain the detail about my project.
Project: Finding the edges of a door and used those edges as a trajectory for a sensor that checks edges for Gap/Flush.
Principle: I used Savitzky Golay, Edge Linking and Line Segment Fitting (https://www.peterkovesi.com/matlabfns/#step2line).
Method I used: Image Analyst's Savitzky filter smoothening at three diffrent thresholds, obtain three images and blend them. The output is again processed to Edge linking and line segmenting program.
After all this I am not able to get good edges, its either not smooth or has a lot of unnecessary edges. But the main problem is I am getting a lot of unnecessary edges in the image. To get a Trajectory I need only Three specific edges which I have marked by hand below in red.
Questions:
  1. How to remove unnecessary edges out of the image. Please suggest me a way to get only those three edges? (without manual intervention)
  2. How to smoothening those edges and join them so that i can use it as trajectory for another program?
I have attached the images of input and output. Sorry for the long question.

Accepted Answer

Image Analyst
Image Analyst on 7 May 2020
If you have an edge image with a bunch of edges but want edges from only certain locations, you maybe best off using a mask/template to erase everything outside the areas you want to look in.
  10 Comments
Image Analyst
Image Analyst on 9 Jul 2020
Try a threshold that gets all the edges then use bwselect() to manually pick out the one you want.
Harshan Desu
Harshan Desu on 14 Jul 2020
The enitre process has to have no manual interverntion. Thanks for the Idea anyways!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!