同学帮改肤色检测(未完成版)

2023-11-05 04:38

本文主要是介绍同学帮改肤色检测(未完成版),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

直接代码:

#include "cv.h"
#include "highgui.h"#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>#include <iostream>
#include <string>
#include <cstdio>using namespace std;
using namespace cv;// implementation of otsu algorithm
// author: onezeros#yahoo.cn
// reference: Rafael C. Gonzalez. Digital Image Processing Using MATLAB
void cvThresholdOtsu(IplImage* src, IplImage* dst)
{int height=src->height;int width=src->width;Mat ycrcbdouble sum_Cr=0;for(int i=0;i < ycrcb.rows;i++){for(int j=0;j < ycrcb.cols;j++){int sky,skcr,skcb;			//三个通道的值sum_Cr +=  (int) ycrcb.at<Vec3b>(i,j)[1];}}//histogramfloat histogram[256]={0};for(int i=0;i<height;i++) {unsigned char* p=(unsigned char*)src->imageData+src->widthStep*i;for(int j=0;j<width;j++) {histogram[*p++]++;}}//normalize histogramint size=height*width;for(int i=0;i<256;i++) {histogram[i]=histogram[i]/size;}//average pixel valuefloat avgValue=0;for(int i=0;i<256;i++) {avgValue+=i*histogram[i];}int threshold;	float maxVariance=0;float w=0,u=0;for(int i=0;i<256;i++) {w+=histogram[i];u+=i*histogram[i];float t=avgValue*w-u;float variance=t*t/(w*(1-w));if(variance>maxVariance) {maxVariance=variance;threshold=i;}}threshold=131;cout<<"threshold == "<<threshold<<endl;cvThreshold(src,dst,threshold,255,CV_THRESH_BINARY);
}void cvSkinOtsu(IplImage* src, IplImage* dst)//Mat &
{assert(dst->nChannels==1&& src->nChannels==3);IplImage* ycrcb=cvCreateImage(cvGetSize(src),8,3);IplImage* cr=cvCreateImage(cvGetSize(src),8,1);cvCvtColor(src,ycrcb,CV_BGR2YCrCb);//cvtColor//show ycrcbcvShowImage("ycrcb",ycrcb);//vector<Point> mv[3]; //split(ycrcb , mv);cvSplit(ycrcb,0,cr,0,0);//splitcvThresholdOtsu(cr,cr);cvShowImage("out2",cr);//showcvSaveImage("out.jpg",cr);//imwrite//cvWaitKey(0);//cvCopyImage(cr,dst);//cvReleaseImage(&cr);cvReleaseImage(&ycrcb);
}int main()
{IplImage* img = cvLoadImage( "zcr.jpg" );//out用以保存输出图像/*IplImage * out = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,3);*/IplImage * out;cvShowImage("in",img);cvSkinOtsu(img,out);//cvShowImage("out",out);cvWaitKey(0);cvReleaseImage(&img);//用完清理//cvReleaseImage(&out);//用完清理cvDestroyWindow("in");cvDestroyWindow("out");return 0;
}




这篇关于同学帮改肤色检测(未完成版)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/347461

相关文章

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

Navicat数据表的数据添加,删除及使用sql完成数据的添加过程

《Navicat数据表的数据添加,删除及使用sql完成数据的添加过程》:本文主要介绍Navicat数据表的数据添加,删除及使用sql完成数据的添加过程,具有很好的参考价值,希望对大家有所帮助,如有... 目录Navicat数据表数据添加,删除及使用sql完成数据添加选中操作的表则出现如下界面,查看左下角从左

C++ 检测文件大小和文件传输的方法示例详解

《C++检测文件大小和文件传输的方法示例详解》文章介绍了在C/C++中获取文件大小的三种方法,推荐使用stat()函数,并详细说明了如何设计一次性发送压缩包的结构体及传输流程,包含CRC校验和自动解... 目录检测文件的大小✅ 方法一:使用 stat() 函数(推荐)✅ 用法示例:✅ 方法二:使用 fsee

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能

《POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能》ApachePOI是一个流行的Java库,用于处理MicrosoftOffice格式文件,提供丰富API来创建、读取和修改O... 目录前言:Apache POIEasyPoiEasyExcel一、EasyExcel1.1、核心特性

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学