ios--OpenCV--进行肤色检测
来源:互联网 发布:简易c语言程序 编辑:程序博客网 时间:2024/04/29 03:23
- (void)viewDidLoad{ [super viewDidLoad]; //[self TakeColorFromImageHSV]; UIImage *mImage = [UIImage imageNamed:@"防伪标签001.jpg"]; self.imageView.image = mImage; IplImage *srcIpl = [self convertToIplImage:mImage]; IplImage *dscIpl = cvCreateImage(cvGetSize(srcIpl), srcIpl->depth, 1); [self SkinDetect:srcIpl withParam:dscIpl]; IplImage *dscIplNew = cvCreateImage(cvGetSize(srcIpl), IPL_DEPTH_8U, 3); cvCvtColor(dscIpl, dscIplNew, CV_GRAY2BGR); self.imageView1.image = [self convertToUIImage:dscIplNew];}// 进行肤色检测-(void)SkinDetect:(IplImage*)src withParam:(IplImage*)dst{ // 创建图像头 IplImage* hsv = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 3);//用于存图像的一个中间变量,是用来分通道用的,分成hsv通道 IplImage* tmpH1 = cvCreateImage( cvGetSize(src), IPL_DEPTH_8U, 1);//通道的中间变量,用于肤色检测的中间变量 IplImage* tmpS1 = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 1); IplImage* tmpH2 = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 1); IplImage* tmpS3 = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 1); IplImage* tmpH3 = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 1); IplImage* tmpS2 = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 1); IplImage* H = cvCreateImage( cvGetSize(src), IPL_DEPTH_8U, 1); IplImage* S = cvCreateImage( cvGetSize(src), IPL_DEPTH_8U, 1); IplImage* V = cvCreateImage( cvGetSize(src), IPL_DEPTH_8U, 1); IplImage* src_tmp1=cvCreateImage(cvGetSize(src),8,3); // 高斯模糊 cvSmooth(src,src_tmp1,CV_GAUSSIAN,3,3); //高斯模糊 // hue色度,saturation饱和度,value纯度 cvCvtColor(src_tmp1, hsv, CV_BGR2HSV );//颜色转换 cvSplit(hsv,H,S,V,0);//分为3个通道 /*********************肤色检测部分**************/ cvInRangeS(H,cvScalar(0.0,0.0,0,0),cvScalar(20.0,0.0,0,0),tmpH1); cvInRangeS(S,cvScalar(75.0,0.0,0,0),cvScalar(200.0,0.0,0,0),tmpS1); cvAnd(tmpH1,tmpS1,tmpH1,0); // Red Hue with Low Saturation // Hue 0 to 26 degree and Sat 20 to 90 cvInRangeS(H,cvScalar(0.0,0.0,0,0),cvScalar(13.0,0.0,0,0),tmpH2); cvInRangeS(S,cvScalar(20.0,0.0,0,0),cvScalar(90.0,0.0,0,0),tmpS2); cvAnd(tmpH2,tmpS2,tmpH2,0); // Red Hue to Pink with Low Saturation // Hue 340 to 360 degree and Sat 15 to 90 cvInRangeS(H,cvScalar(170.0,0.0,0,0),cvScalar(180.0,0.0,0,0),tmpH3); cvInRangeS(S,cvScalar(15.0,0.0,0,0),cvScalar(90.,0.0,0,0),tmpS3); cvAnd(tmpH3,tmpS3,tmpH3,0); // Combine the Hue and Sat detections cvOr(tmpH3,tmpH2,tmpH2,0); cvOr(tmpH1,tmpH2,tmpH1,0); cvCopy(tmpH1,dst); cvReleaseImage(&hsv); cvReleaseImage(&tmpH1); cvReleaseImage(&tmpS1); cvReleaseImage(&tmpH2); cvReleaseImage(&tmpS2); cvReleaseImage(&tmpH3); cvReleaseImage(&tmpS3); cvReleaseImage(&H); cvReleaseImage(&S); cvReleaseImage(&V); cvReleaseImage(&src_tmp1);}
0 0
- ios--OpenCV--进行肤色检测
- 肤色检测opencv
- OpenCV肤色检测
- OpenCV中的肤色检测
- OpenCV编程->肤色检测
- OpenCV肤色检测
- 利用OpenCV检测肤色
- 基于OpenCV 肤色检测
- OpenCV中的肤色检测
- OpenCV中的肤色检测
- OpenCV下肤色检测代码
- OpenCV下肤色检测代码
- OpenCV——肤色检测
- OpenCv视频图像肤色检测
- 【新】opencv肤色检测源码
- 基于opencv的肤色检测
- 学习OpenCV——肤色检测
- 学习OpenCV——肤色检测
- SEO基础知识——镜像网站
- 杂记
- jqGrid插件的多个表格同步设置列宽
- 处理特殊log语句的java函数
- android 用get 方式提交到 服务器的时候中文乱码解决
- ios--OpenCV--进行肤色检测
- Sql注入漏洞及绑定变量浅谈
- 20140404学习_myeclipse调试debug注意
- 起点-积累-进步-成长
- 一步步学习数据结构和算法之希尔排序效率分析及java实现
- crontab中PHP inlucde相对路径导致脚本不执行的解决办法
- SEO基础知识——SEO是什么?
- Vim自动补全神器:YouCompleteMe
- L1 norm, L2 norm