def test_haar(): image = luispedro_jpg(1) image = image[:256,:256] wav = mahotas.haar(image) assert wav.shape == image.shape assert np.allclose((image[0].reshape((-1,2)).mean(1)+image[1].reshape((-1,2)).mean(1))/2, wav[0,:128]/2.) assert np.abs(np.mean(image**2) - np.mean(wav**2)) < 1. image = luispedro_jpg(1) wav = mahotas.haar(image, preserve_energy=False) assert np.abs(np.mean(image**2) - np.mean(wav**2)) > 16. wav = mahotas.haar(image, inline=True) assert id(image) == id(wav)
def test_haar(): image = luispedro_jpg(1) image = image[:256, :256] wav = mahotas.haar(image) assert wav.shape == image.shape assert np.allclose((image[0].reshape((-1, 2)).mean(1) + image[1].reshape( (-1, 2)).mean(1)) / 2, wav[0, :128] / 2.) assert np.abs(np.mean(image**2) - np.mean(wav**2)) < 1. image = luispedro_jpg(1) wav = mahotas.haar(image, preserve_energy=False) assert np.abs(np.mean(image**2) - np.mean(wav**2)) > 16. wav = mahotas.haar(image, inline=True) assert id(image) == id(wav)
def test_gaussian_filter(): from scipy import ndimage f = luispedro_jpg(1) for s in (4., 8., 12.): g = gaussian_filter(f, s) n = ndimage.gaussian_filter(f, s) assert np.max(np.abs(n - g)) < 1.e-5
def test_gaussian_filter(): from scipy import ndimage f = luispedro_jpg(1) for s in (4.,8.,12.): g = gaussian_filter(f, s) n = ndimage.gaussian_filter(f, s) assert np.max(np.abs(n - g)) < 1.e-5
def test_daubechies_D2_haar(): image = luispedro_jpg(1) image = image[:256,:256] wav = mahotas.haar(image, preserve_energy=False) dau = mahotas.daubechies(image, 'D2') assert wav.shape == dau.shape assert np.allclose(dau, wav)
def test_daubechies_idaubechies(): f = luispedro_jpg(1) f = f[:256, :256] fo = f.copy() d = mahotas.daubechies(f, 'D8') r = mahotas.idaubechies(d, 'D8') assert np.mean((r[4:-4, 4:-4] - fo[4:-4, 4:-4])**2) < 1.
def test_daubechies_D2_haar(): image = luispedro_jpg(1) image = image[:256, :256] wav = mahotas.haar(image, preserve_energy=False) dau = mahotas.daubechies(image, 'D2') assert wav.shape == dau.shape assert np.allclose(dau, wav)
def test_daubechies_idaubechies(): f = luispedro_jpg(1) f = f[:256,:256] fo = f.copy() d = mahotas.daubechies(f, 'D8') r = mahotas.idaubechies(d, 'D8') assert np.mean( (r[4:-4,4:-4] - fo[4:-4,4:-4])**2) < 1.
def test_ihaar(): image = luispedro_jpg(1) image = image[:256, :256] wav = mahotas.haar(image) iwav = mahotas.ihaar(wav) assert np.allclose(image, iwav) iwav = mahotas.ihaar(wav, preserve_energy=False) assert not np.allclose(wav, iwav) iwav = mahotas.ihaar(wav, inline=True) assert id(iwav) == id(wav)
def test_ihaar(): image = luispedro_jpg(1) image = image[:256,:256] wav = mahotas.haar(image) iwav = mahotas.ihaar(wav) assert np.allclose(image, iwav) iwav = mahotas.ihaar(wav, preserve_energy=False) assert not np.allclose(wav, iwav) iwav = mahotas.ihaar(wav, inline=True) assert id(iwav) == id(wav)
def test_rgb2grey(): f = luispedro_jpg() fg = rgb2grey(f) fg8 = rgb2grey(f, dtype=np.uint8) assert f.ndim == 3 assert fg.ndim == 2 assert fg8.ndim == 2 assert fg.shape[0] == f.shape[0] assert fg.shape[1] == f.shape[1] assert fg.shape == fg8.shape assert fg8.dtype == np.uint8
def test_colors(): f = luispedro_jpg() lab = rgb2lab(f) assert np.max(np.abs(lab)) <= 100. assert np.max(np.abs(xyz2rgb(rgb2xyz(f)) - f)) < 1. lab8 = rgb2lab(f, dtype=np.uint8) assert lab.dtype != np.uint8 assert lab8.dtype == np.uint8 xyz = rgb2xyz(f, dtype=np.uint8) assert xyz.shape == f.shape assert xyz.dtype == np.uint8
def test_center_wavelet_iwavelet_decenter(): from mahotas import wavelet_center, wavelet_decenter import mahotas import numpy as np f = luispedro_jpg(1) f = f[:100,:250] fo = f.copy() for wav in ('D2', 'D4', 'D6', 'D8', 'D10', 'D12', 'D16'): fc = mahotas.wavelet_center(fo, border=24) t = mahotas.daubechies(fc, wav) r = mahotas.idaubechies(t, wav) rd = mahotas.wavelet_decenter(r, fo.shape, border=24) assert np.allclose(fo, rd)
def test_center_wavelet_iwavelet_decenter(): from mahotas import wavelet_center, wavelet_decenter import mahotas import numpy as np f = luispedro_jpg(1) f = f[:100, :250] fo = f.copy() for wav in ('D2', 'D4', 'D6', 'D8', 'D10', 'D12', 'D16'): fc = mahotas.wavelet_center(fo, border=24) t = mahotas.daubechies(fc, wav) r = mahotas.idaubechies(t, wav) rd = mahotas.wavelet_decenter(r, fo.shape, border=24) assert np.allclose(fo, rd)
def test_lbp_transform(): im = luispedro_jpg().max(2) transformed = lbp_transform(im, 8, 4, preserve_shape=True) assert transformed.shape == im.shape assert transformed.min() >= 0 assert transformed.max() < 2**4 transformed = lbp_transform(im, 8, 4, preserve_shape=False) assert len(transformed.shape) == 1 assert transformed.size == im.size np.random.seed(234) im *= np.random.random(im.shape) > .1 transformed = lbp_transform(im, 8, 4, preserve_shape=False, ignore_zeros=True) assert len(transformed.shape) == 1 assert transformed.size == (im.size - (im==0).sum())
def test_wavelet_iwavelet(): f = luispedro_jpg(1) f = f[:256,:256] fo = f.copy() D4 = np.array([0.6830127, 1.1830127, 0.3169873, -0.1830127], dtype=np.float32) D4_high = D4[::-1].copy() D4_high[1::2] *= -1 f = f[34] low = np.convolve(f, D4) high = np.convolve(f,D4_high) low[::2] = 0 high[::2] = 0 rec = (np.convolve(high, D4_high[::-1])+np.convolve(low, D4[::-1])) rec /= 2 f2 = np.array([f]) mahotas._convolve.wavelet(f2,D4) hand = np.concatenate((low[3::2],high[3::2])) wav = f2.ravel() assert np.allclose(hand,wav) mahotas._convolve.iwavelet(f2,D4) assert np.allclose(rec[3:-3],f) assert np.allclose(f2.ravel()[3:-3],f[3:-3])
def test_wavelet_iwavelet(): f = luispedro_jpg(1) f = f[:256, :256] fo = f.copy() D4 = np.array([0.6830127, 1.1830127, 0.3169873, -0.1830127], dtype=np.float32) D4_high = D4[::-1].copy() D4_high[1::2] *= -1 f = f[34] low = np.convolve(f, D4) high = np.convolve(f, D4_high) low[::2] = 0 high[::2] = 0 rec = (np.convolve(high, D4_high[::-1]) + np.convolve(low, D4[::-1])) rec /= 2 f2 = np.array([f]) mahotas._convolve.wavelet(f2, D4) hand = np.concatenate((low[3::2], high[3::2])) wav = f2.ravel() assert np.allclose(hand, wav) mahotas._convolve.iwavelet(f2, D4) assert np.allclose(rec[3:-3], f) assert np.allclose(f2.ravel()[3:-3], f[3:-3])
def test_sepia(): f = luispedro_jpg() sepia= mahotas.colors.rgb2sepia(f) assert sepia.shape == f.shape
def test_non_valid_daubechies(): image = luispedro_jpg() mahotas.daubechies(image, 'D-4')