mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
Fix RGB skin filter
This commit is contained in:
parent
e72e55802c
commit
84ff228384
@ -61,11 +61,14 @@ void im_filter_skin(uint8_t *src, uint8_t *dst, int size, int bpp, void *args)
|
|||||||
int r = IM_R528(srcrgb[i]);
|
int r = IM_R528(srcrgb[i]);
|
||||||
int g = IM_G628(srcrgb[i]);
|
int g = IM_G628(srcrgb[i]);
|
||||||
int b = IM_B528(srcrgb[i]);
|
int b = IM_B528(srcrgb[i]);
|
||||||
//int y = yuv_table[srcrgb[i] * 3 + 0];
|
//int y = yuv_table[srcrgb[i] * 3 + 0] + 128;
|
||||||
int u = yuv_table[srcrgb[i] * 3 + 1];
|
int u = (int) yuv_table[srcrgb[i] * 3 + 1] + 128;
|
||||||
int v = yuv_table[srcrgb[i] * 3 + 2];
|
int v = (int) yuv_table[srcrgb[i] * 3 + 2] + 128;
|
||||||
dstrgb[i] = (u>80 && u<130 && v>136 && v<200 && v>u &&
|
// From "Skin Segmentation Using YUV and RGB Color Spaces" Zaher Hamid Al-Tairi
|
||||||
r>80 && g>30 && b>15 && ((r-g)*(r-g)) > 225) ? srcrgb[i] : 0;
|
dstrgb[i] = (u>80 && u<130 &&
|
||||||
|
v>136 && v<200 && v>u &&
|
||||||
|
r>80 && g>30 && b>15 &&
|
||||||
|
(((r-g)*(r-g)) > 225)) ? srcrgb[i] : 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user