You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The default image extension mode used in scipy.ndimage.convolve is 'reflect', which reflects the image about the edge of the pixels. This introduces artefacts in the edge of the resulting RGB layers when demosaicing:
# Constant ones as imageorig=np.ones((2,2))
R, G, B=demosaicing_CFA_Bayer_bilinear(orig)
# R, G and B should also be constant 1 (at least in the measured pixels), but instead# R: [[2.25, 0.75], G: [[0.5, 1.5], B: [[0.25, 0.75],# [0.75, 0.25]] [1.5, 0.5]] [0.75, 2.25]]
Passing mode='mirror' - which reflects about pixel centers (doesn't repeat the edge values) - to convolve in demosaicing_CFA_Bayer_bilinear returns the expected values. I figure this should be the default for demosaicing?
The text was updated successfully, but these errors were encountered:
There is probably something silly wrong in the tests I wrote. I haven't yet been able to run the test suite myself as I'm having trouble getting OpenImageIO to work. However, I also think that the reason the existing tests are failing because they are testing against images that have this exact issue (demosaiced using the reflected padding). I'm actually wondering whether any demosaicing codes deal with this issue.
The default image extension mode used in
scipy.ndimage.convolve
is'reflect'
, which reflects the image about the edge of the pixels. This introduces artefacts in the edge of the resulting RGB layers when demosaicing:Passing
mode='mirror'
- which reflects about pixel centers (doesn't repeat the edge values) - toconvolve
indemosaicing_CFA_Bayer_bilinear
returns the expected values. I figure this should be the default for demosaicing?The text was updated successfully, but these errors were encountered: