Use separable gaussian kernels.

This commit is contained in:
iabdalkader 2017-03-09 22:41:09 +02:00
parent 943f19ae5d
commit 040a3cb0e4
2 changed files with 10 additions and 10 deletions

View File

@ -121,17 +121,17 @@ void image_copy(image_t *dst, image_t *src)
extern const float xyz_table[256];
const int8_t kernel_gauss_3[3*3] = {
9, 12, 9,
12, 15, 12,
9, 12, 9,
1, 2, 1,
2, 4, 2,
1, 2, 1,
};
const int8_t kernel_gauss_5[5*5] = {
2, 4, 5, 4, 2,
4, 9, 12, 9, 4,
5, 12, 15, 12, 5,
4, 9, 12, 9, 4,
2, 4, 5, 4, 2,
1, 4, 6, 4, 1,
4, 16, 24, 16, 4,
6, 24, 36, 24, 6,
4, 16, 24, 16, 4,
1, 4, 6, 4, 1
};
const int8_t kernel_laplacian_3[3*3] = {

View File

@ -820,9 +820,9 @@ static mp_obj_t py_image_gaussian(uint n_args, const mp_obj_t *args, mp_map_t *k
PY_ASSERT_TRUE_MSG((arg_ksize == 3 || arg_ksize == 5), "Kernel Size must be 3 or 5");
if (arg_ksize == 3) {
imlib_morph(arg_img, 1, kernel_gauss_3, 1.0f/99.0f, 0.0f);
imlib_morph(arg_img, 1, kernel_gauss_3, 1.0f/16.0f, 0.0f);
} else if (arg_ksize == 5) {
imlib_morph(arg_img, 2, kernel_gauss_5, 1.0f/159.0f, 0.0f);
imlib_morph(arg_img, 2, kernel_gauss_5, 1.0f/256.0f, 0.0f);
}
return args[0];