title: Why the orientation of image convolution operators are not intuitive?
body: <p>Thanks for reading this and please excuse my poor English since I'm not a native speaker.</p>
  
  <p>For example, Sobel operator:
  <a href="http://en.wikipedia.org/wiki/Sobel_operator" rel="nofollow">http://en.wikipedia.org/wiki/Sobel_operator</a></p>
  
  <p>The right side is positive and the left side is negative in Gx, while the upper is positive in Gy.</p>
  
  <p>I'm not a specialist of image processing. But I presume most people count pixels from left-upper of an image. Since we need to "flip" the kernel during the process of convolutions, why Gx is not a mirrored one for a better regularity when defining the operators?</p>
  
  <p>I know technically it's not a programming question. But it's related to programming.
  For example, python's <code>scipy.ndimage</code> provides the <code>sobel</code> function. That function uses a kernel that the left column is positive and the right column is negative. It differs from all materials about image processing I can find (including Wikipedia articles). Is there any special reasons that a real implementation differs from the mathematical definition?</p>