mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
Fixed morph edge methods.
Redcued noise being injected. Looks a lot better now.
This commit is contained in:
parent
3342f68ca2
commit
74c892abd6
@ -1714,7 +1714,7 @@ STATIC mp_obj_t py_image_morph(uint n_args, const mp_obj_t *args, mp_map_t *kw_a
|
|||||||
|
|
||||||
for (int i = 0; i < n; i++) {
|
for (int i = 0; i < n; i++) {
|
||||||
arg_krn[i] = mp_obj_get_int(krn[i]);
|
arg_krn[i] = mp_obj_get_int(krn[i]);
|
||||||
arg_m += abs(arg_krn[i]);
|
arg_m += arg_krn[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (arg_m == 0) {
|
if (arg_m == 0) {
|
||||||
@ -1763,16 +1763,18 @@ STATIC mp_obj_t py_image_gaussian(uint n_args, const mp_obj_t *args, mp_map_t *k
|
|||||||
|
|
||||||
for (int i = 0; i < n; i++) {
|
for (int i = 0; i < n; i++) {
|
||||||
for (int j = 0; j < n; j++) {
|
for (int j = 0; j < n; j++) {
|
||||||
arg_krn[(i * n) + j] = pascal[i] * pascal[j];
|
int temp = pascal[i] * pascal[j];
|
||||||
arg_m += abs(arg_krn[(i * n) + j]);
|
arg_krn[(i * n) + j] = temp;
|
||||||
|
arg_m += temp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool arg_unsharp =
|
int middle = ((n/2)*n)+(n/2);
|
||||||
py_helper_keyword_int(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_unsharp), false);
|
|
||||||
|
|
||||||
if (arg_unsharp) arg_krn[((n/2)*n)+(n/2)] -= arg_m * 2;
|
if (py_helper_keyword_int(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_unsharp), false)) {
|
||||||
if (arg_unsharp) arg_m = -arg_m;
|
arg_krn[middle] -= arg_m * 2;
|
||||||
|
arg_m = -arg_m;
|
||||||
|
}
|
||||||
|
|
||||||
float arg_mul =
|
float arg_mul =
|
||||||
py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_mul), 1.0f / arg_m);
|
py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_mul), 1.0f / arg_m);
|
||||||
@ -1816,16 +1818,20 @@ STATIC mp_obj_t py_image_laplacian(uint n_args, const mp_obj_t *args, mp_map_t *
|
|||||||
|
|
||||||
for (int i = 0; i < n; i++) {
|
for (int i = 0; i < n; i++) {
|
||||||
for (int j = 0; j < n; j++) {
|
for (int j = 0; j < n; j++) {
|
||||||
arg_krn[(i * n) + j] = -(pascal[i] * pascal[j]);
|
int temp = pascal[i] * pascal[j];
|
||||||
arg_m += abs(arg_krn[(i * n) + j]);
|
arg_krn[(i * n) + j] = -temp;
|
||||||
|
arg_m += temp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool arg_sharpen =
|
int middle = ((n/2)*n)+(n/2);
|
||||||
py_helper_keyword_int(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_sharpen), false);
|
int temp = -arg_krn[middle];
|
||||||
|
arg_krn[middle] += arg_m;
|
||||||
|
arg_m = temp;
|
||||||
|
|
||||||
arg_krn[((n/2)*n)+(n/2)] += arg_m + arg_sharpen;
|
if (py_helper_keyword_int(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_sharpen), false)) {
|
||||||
arg_m = 1;
|
arg_krn[middle] += arg_m;
|
||||||
|
}
|
||||||
|
|
||||||
float arg_mul =
|
float arg_mul =
|
||||||
py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_mul), 1.0f / arg_m);
|
py_helper_keyword_float(n_args, args, 3, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_mul), 1.0f / arg_m);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user