I am using The sobel operator to detect edges in a grayscale image with EmguCV 3.0 (the .NET Wrapper for OpenCV).
The code I am using is
Image<Gray, byte> gray = new Image<Gray, byte>(@"C:\gray.bmp");
Image<Gray, float> sobel = gray.Sobel(0, 1, 3).Add(gray.Sobel(1, 0, 3)).AbsDiff(new Gray(0.0));
This is the preprocessed image (gray)
And this is what I get out (sobel)
As you can see, the edges in the top-right and the bottom-left corner are very weak. I first thought, it could have something to do with the original image, so I rotated it by 180 degrees and ran the sobel-filter again. The result still has very weak edges in the top-right and the bottom-left corner (unfortunately I am not allowed to post more than two links here, so I can´t show it to you).
So My question is: Is this a bug, or am I using the sobel filter wrong? Should´t it be rotation-invariant, when ran in two dimensions? And how can I fix it, to see these two edges as strong as the other ones?