How to extract specific edges from an image?

4 次查看(过去 30 天)
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.

采纳的回答

Image Analyst
Image Analyst 2020-5-7
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 个评论
Image Analyst
Image Analyst 2020-7-9
Try a threshold that gets all the edges then use bwselect() to manually pick out the one you want.
Harshan Desu
Harshan Desu 2020-7-14
The enitre process has to have no manual interverntion. Thanks for the Idea anyways!

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by