Sobel Edge Detection Threshold value single vs uint8 image
5 views (last 30 days)
Show older comments
Matthias von Andrian
on 20 Apr 2023
Answered: Matthias von Andrian
on 20 Apr 2023
I have a Simulink model that does edge detection using the Edge Detection Block with the Sobel algorithm. I have found a good Threshold to get the level of detection that I want. For the application, my image source will change from single to unit8. I can not find a Threshold in uint8 that gives me the equivalent result as the one I use in single.
I made an example Simulink file and attached it here to show what I mean. On the top is my current solution, using an image in datatype single and Sobel Threshold 0.1 that gives me a good edge detection. On the bottom is my future solution where the image datatype has changed to uint8. I tried many different values for the Sobel Threshold but I can not find one that gives me a similar result as in the top path.

In the following screenshot, I show the images and detected edges:

I am aware that converting the image to datatype single would probably enable me to get the current performance, but I want to avoid that step due to memory/processing power constraints.
4 Comments
Accepted Answer
More Answers (1)
Image Analyst
on 20 Apr 2023
I don't know Simulink but Sobel has a fixed filter size that may not scale well with the size/width of the edges in your particular image. It would be better to use a DOG filter (difference of Gaussians). You can tailor the width of the Gaussians to optimize for the size and sharpness of edges in your image.
See Also
Categories
Find more on Computer Vision with Simulink 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!
