肤色检测一例-使用rgb颜色模型
2016-06-28 20:53
218 查看
代码:
效果:
/* 输入:rgb图像 输出:与输入图像尺寸相同的灰度图,若rgb图中某像素检测为肤色,则灰度图中对应像素为255,否则为0 */ void SkinRGB( Mat &rgb,Mat &dst){ assert(rgb.channels() == 3 ); const int R = 2; const int G = 1; const int B = 0; dst = Mat::zeros(rgb.rows, rgb.cols, CV_8U); for (int i = 0; i < rgb.rows; i++){ Vec3b* ptr = rgb.ptr<Vec3b>(i); uchar* ptr_mask = dst.ptr<uchar>(i); for (int j = 0; j < rgb.cols; j++){ Vec3b pixel = ptr[j]; if ((pixel[R] > 95 && pixel[G]>40 && pixel[B] > 20 && pixel[R] - pixel[B]>15 && pixel[R] - pixel[G]>15) || (pixel[R]>200 && pixel[G]>210 && pixel[B]>170 && abs(pixel[R] - pixel[B]) <= 15 && pixel[R]>pixel[B] && pixel[G]>pixel[B])){ ptr_mask[j] = 255; } } } }
效果:
相关文章推荐
- Linux-ulimit命令
- 访问服务器地址中的某个文件链接,下载文件到客户端
- python强制类型转换(dpkt)
- unsigned long的一点应用
- session入库
- 为 Tomcat 安装 apr
- 吉布斯采样——原理及matlab实现
- Erasure Coding(纠删码)深入分析
- 算法之美--交换排序--冒泡排序
- Codeforces 545C Woodcutters
- SpiralOrderTraverse,螺旋遍历二叉树,利用两个栈
- BBC-unit7 session1
- 字符串分割,以及字符串匹配
- Visual Studio属性配置中使用宏
- out.println()和<%=%>那种输出方式更好?
- okHttp post&get请求
- Javassist library is missing in classpath! Please add missed dependency!
- android 实现截取 内容超过屏幕大小的长图
- windows7系统上查找大于指定大小的文件
- css position属性