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 g = IM_G628(srcrgb[i]);
|
||||
int b = IM_B528(srcrgb[i]);
|
||||
//int y = yuv_table[srcrgb[i] * 3 + 0];
|
||||
int u = yuv_table[srcrgb[i] * 3 + 1];
|
||||
int v = yuv_table[srcrgb[i] * 3 + 2];
|
||||
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;
|
||||
//int y = yuv_table[srcrgb[i] * 3 + 0] + 128;
|
||||
int u = (int) yuv_table[srcrgb[i] * 3 + 1] + 128;
|
||||
int v = (int) yuv_table[srcrgb[i] * 3 + 2] + 128;
|
||||
// From "Skin Segmentation Using YUV and RGB Color Spaces" Zaher Hamid Al-Tairi
|
||||
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