I have some troubles trying to decide edge-map threshold. As i understood this document in link above, what i need to do is: 1. Apply sobel edge dection filter to image, resulting image will be called G.
Create Accumulated histogram of G-image (which is looks like 0->1% 1->2.5%....n->100% and 0..n is gradation of values, i have normalized image with values from 0 to 255 and so i generate from its histogram (which is from 0 to 255) a new histogram with 256 values which indicate percentage of image).
Decide G-threshold to be index of >= 90% value of image. For example if 25th of 256 values of acc-histogram are equal to 90%, threshold value will be 25.
Apply threshold filter to G-image with selected Gth value
Problem is: on noisy images (like noisy image of bears) will produce edge-map with noise included.
My question is: is it because i'm doing something terribly wrong or its just nature of this algorithm?
Examples of what happens on edge-detection phrase with those bears (red color chanel)
My code so far looks like this: C++ CImg implementation - containts links to example outputs.
The code is "a bit" buggy and badly written, but i'm just trying to implement the algorithm in one run, so i can later rethink it and write normal code.
Basicly it all same for all channels. I can't understand why this happens to me,