Sobel Edge Detection Threshold value single vs uint8 image
6 ビュー (過去 30 日間)
古いコメントを表示
Matthias von Andrian
2023 年 4 月 20 日
回答済み: Matthias von Andrian
2023 年 4 月 20 日
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 件のコメント
採用された回答
その他の回答 (1 件)
Image Analyst
2023 年 4 月 20 日
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.
参考
カテゴリ
Help Center および File Exchange で Computer Vision with Simulink についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

