基于opencv的皮肤检测

简介:

一个超精准的肤色检测!!

修改自opencv的adaptiveskindetector.cpp,去掉了复杂的命令行参数输入,只需要一个网络摄像头即可运行。

原理方面大致看了下,主要还是利用HSV空间的色调信息。

效果还可以,但似乎对于白色,尤其是乳白色的墙壁,壁板等检测效果较差。

这是在这里公布的第一个小东西,尽量一周更新一个,基本都会附带源代码(C++, VS2008)

 

复制代码
     
     
/* ********************************************************************** */
/* adaptive skin detection
modified from opencv's adaptiveskindetector.cpp
opencv2.0 is required
welcome to visit my website:
http://yangyangwenjia.appspot.com/
*/
/* ********************************************************************** */
#include
< iostream >
#include
< cstdio >
#include
< cstring >
#include
< ctime >
#include
< cvaux.h >
#include
< highgui.h >

int main( int argc, char ** argv )
{
CvAdaptiveSkinDetector filter(
1 , CvAdaptiveSkinDetector::MORPHING_METHOD_ERODE_DILATE);

int camWidth = 640 ;
int camHeight = 480 ;

IplImage
* maskImg = cvCreateImage( cvSize(camWidth, camHeight), IPL_DEPTH_8U, 1 );
IplImage
* skinImg = cvCreateImage( cvSize(camWidth, camHeight), IPL_DEPTH_8U, 3 );

cvNamedWindow(
" skin " , CV_WINDOW_AUTOSIZE);
cvNamedWindow(
" source " , CV_WINDOW_AUTOSIZE);

CvCapture
* capture = cvCaptureFromCAM( 0 );
IplImage
* frame = 0 ;

for (;;)
{
cvZero(skinImg);

frame
= cvQueryFrame( capture );
if ( ! frame )
break ;

filter.process(frame, maskImg);
// process the frame
cvCopy(frame,skinImg,maskImg);

cvShowImage (
" skin " , skinImg);
cvShowImage (
" source " , frame);
if (cvWaitKey( 1 ) == 27 )
break ;

}

cvReleaseImage(
& skinImg);
cvReleaseImage(
& maskImg);
cvReleaseCapture(
& capture );

cvDestroyWindow(
" skin " );
cvDestroyWindow(
" source " );

return 0 ;
}

基于opencv的皮肤检测



相关文章
|
算法 计算机视觉
OpenCV(四十三):Shi-Tomas角点检测
OpenCV(四十三):Shi-Tomas角点检测
432 0
|
计算机视觉
OpenCV(三十八):二维码检测
OpenCV(三十八):二维码检测
650 0
|
编解码 计算机视觉
OpenCV(三十六):霍夫直线检测
OpenCV(三十六):霍夫直线检测
337 0
|
计算机视觉 索引
OpenCV(三十五):凸包检测
OpenCV(三十五):凸包检测
294 0
|
存储 资源调度 算法
Opencv(C++)系列学习---SIFT、SURF、ORB算子特征检测
Opencv(C++)系列学习---SIFT、SURF、ORB算子特征检测
948 0
|
计算机视觉
Opencv学习笔记(八):如何通过cv2读取视频和摄像头来进行人脸检测(jetson nano)
如何使用OpenCV库通过cv2模块读取视频和摄像头进行人脸检测,并提供了相应的代码示例。
427 1
|
10月前
|
XML 机器学习/深度学习 人工智能
使用 OpenCV 和 Python 轻松实现人脸检测
本文介绍如何使用OpenCV和Python实现人脸检测。首先,确保安装了OpenCV库并加载预训练的Haar特征模型。接着,通过读取图像或视频帧,将其转换为灰度图并使用`detectMultiScale`方法进行人脸检测。检测到的人脸用矩形框标出并显示。优化方法包括调整参数、多尺度检测及使用更先进模型。人脸检测是计算机视觉的基础技术,具有广泛应用前景。
458 10
|
机器学习/深度学习 计算机视觉
目标检测笔记(六):如何结合特定区域进行目标检测(基于OpenCV的人脸检测实例)
本文介绍了如何使用OpenCV进行特定区域的目标检测,包括人脸检测实例,展示了两种实现方法和相应的代码。
371 1
目标检测笔记(六):如何结合特定区域进行目标检测(基于OpenCV的人脸检测实例)
|
存储 算法 计算机视觉
OpenCV(四十二):Harris角点检测
OpenCV(四十二):Harris角点检测
464 0
|
算法 计算机视觉 Python
圆形检测算法-基于颜色和形状(opencv)
该代码实现了一个圆检测算法,用于识别视频中的红色、白色和蓝色圆形。通过将图像从RGB转换为HSV颜色空间,并设置对应颜色的阈值范围,提取出目标颜色的区域。接着对这些区域进行轮廓提取和面积筛选,使用霍夫圆变换检测圆形,并在原图上绘制检测结果。
477 0