Why is Gaussian Filter different between cv2 and skimage?
<p>I've got an image that I apply a Gaussian Blur to using both <code>cv2.GaussianBlur</code> and <code>skimage.gaussian_filter</code> libraries, but I get significantly different results.  I'm curious as to why, and what can be done to make <code>skimage</code> look more like <code>cv2</code>.  I know <code>skimage.gaussian_filter</code> is a wrapper around <code>scipy.scipy.ndimage.filters.gaussian_filter</code>.  To clearly state the question, why are the two functions different and what can be done to make them more similar?</p>
<p>Here is my test image:</p>
<p><a href="https://i.stack.imgur.com/bg4dZ.png" rel="noreferrer"><img src="https://i.stack.imgur.com/bg4dZ.png" alt="Original Image" /></a></p>
<p>Here is the <code>cv2</code> version (appears blurrier):</p>
<p><a href="https://i.stack.imgur.com/zmVUu.png" rel="noreferrer"><img src="https://i.stack.imgur.com/zmVUu.png" alt="cv2 image" /></a></p>
<p>Here is the <code>skimage</code>/<code>scipy</code> version (appears sharper):</p>
<p><a href="https://i.stack.imgur.com/Tlmbr.png" rel="noreferrer"><img src="https://i.stack.imgur.com/Tlmbr.png" alt="skimage version" /></a></p>
<p>Details:</p>
<p><code>skimage_response = skimage.filters.gaussian_filter(im, 2, multichannel=True, mode='reflect')</code></p>
<p><code>cv2_response = cv2.GaussianBlur(im, (33, 33), 2)</code></p>
<p>So sigma=2 and the size of the filter is big enough that it shouldn't make a difference.  Imagemagick <code>covnert -gaussian-blur 0x2</code> visually agrees with <code>cv2</code>.</p>
<p>Versions: <code>cv2</code>=2.4.10, <code>skimage</code>=0.11.3, <code>scipy</code>=0.13.3</p>