软件中显示过多“皮肤”检测

2024-04-06

我正在构建一个 ASP.NET 网站,用户可以在其中上传自己的照片。每天可能会上传数千张照片。我的老板问过几次的一件事是,是否有任何方法可以检测到是否有任何照片显示太多“皮肤”,并在编辑做出最终决定之前自动将这些照片标记为“仅限成人”。


最好的选择是处理 HSV 色彩空间中的图像(请参阅here http://www.cs.rit.edu/~ncs/color/t_convert.html用于 RGB - HSV 转换)。所有种族的肤色几乎都是一样的,只是饱和度发生了变化。通过处理 HSV 中的图像,您可以简单地搜索肤色。

您可以通过简单地计算颜色范围内的像素数来完成此操作,或者您可以执行区域 http://www.cse.unr.edu/~bebis/CS791E/Notes/RegionGrowing.pdf围绕像素生长来计算颜色区域的大小。

编辑:为了处理颗粒状图像,您可能需要执行中值滤波器 http://en.wikipedia.org/wiki/Median_filter首先在图像上,然后减少颜色数量以首先分割图像,您将必须在一大组预分类(成人或非成人)图像上尝试设置,并查看这些值的行为方式以获得令人满意的检测水平。

编辑:这里有一些代码应该做一个简单的计数(没有测试它,它是一些代码的快速混搭)here http://www.obnoxiouslyverbose.com/8/c-image-processing-performance-unsafe-vs-safe-code-part-i和 RGB 到 HSLhere http://en.wikipedia.org/wiki/HSL_color_space)

Bitmap b = new Bitmap(_image);
BitmapData bData = b.LockBits(new Rectangle(0, 0, _image.Width, _image.Height), ImageLockMode.ReadWrite, b.PixelFormat);
byte bitsPerPixel = GetBitsPerPixel(bData.PixelFormat);
byte* scan0 = (byte*)bData.Scan0.ToPointer();

int count;

for (int i = 0; i < bData.Height; ++i)
{
    for (int j = 0; j < bData.Width; ++j)
    {
        byte* data = scan0 + i * bData.Stride + j * bitsPerPixel / 8;

        byte r = data[2];
        byte g = data[1];
        byte b = data[0];

        byte max = (byte)Math.Max(r, Math.Max(g, b));
        byte min = (byte)Math.Min(r, Math.Min(g, b));

        int h;

        if(max == min)
            h = 0;
        else if(r > g && r > b)
            h = (60 * ((g - b) / (max - min))) % 360;
        else if (g > r && g > b)
            h = 60 * ((b - r)/max - min) + 120;
        else if (b > r && b > g)
            h = 60 * ((r - g) / max - min) + 240;


        if(h > _lowerThresh && h < _upperThresh)
            count++;
    }
}
b.UnlockBits(bData);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件中显示过多“皮肤”检测 的相关文章

  • 使用 json 向 RESTful WCF 发送 Post 请求

    我已经尝试了每种组合来发送请求 以从 jQuery 向 RESTful WCF 发送 POST 请求 有人可以模仿并使其发挥作用吗 代码在这里 http pastebin com Ua97919C http pastebin com Ua9
  • 如何使用 ASP.NET Web API 生成 ATOM 和 RSS2 提要?

    需要采取哪些步骤来调整 ASP NET Web API 的默认 XML 输出以生成 ATOM 和 RSS2 提要 您将需要实现自定义 MediaTypeFormatter 您可能想查看 Filip 的博客文章用于 ASP NET WebAP
  • 实体框架 4 DB 优先依赖注入?

    我更喜欢创建自己的数据库 设置索引 唯一约束等 使用 edmx 实体框架设计器 从数据库生成域模型是轻而易举的事 现在我有兴趣使用依赖注入来设置一些存储库 我查看了 StackOverflow 上的一些文章和帖子 似乎重点关注代码优先方法
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif
  • 如何从代码隐藏运行存储过程(带参数 - 有返回值)?

    如何使用存储过程 带参数 具有类型的返回值int 从代码后面 我的存储过程如下所示 ALTER Procedure dbo sp Noskheh SumOfTotalPay Co ID int AS Declare Sum bigint B
  • ASP.Net 中的不同身份验证方式

    我正在为我的公司开发一个网站 该网站可以在我们的内部网络和互联网上访问 有人问我一些对我来说似乎不可能的问题 但我想在真正说之前问这个问题 我们公司有两种类型的用户 一种是实际在 Active Directory 中注册的用户 等等 拥有
  • 照片马赛克算法。如何在给定基本图像和瓷砖列表的情况下创建马赛克照片?

    Hy 我要做的是创建一个程序 使用 C 或 C 它将 24 位 像素位图和图像集合作为输入 我必须创建一个马赛克图像 类似于使用库的输入图像给定的图像 创建与输入类似的马赛克照片 到目前为止 我可以访问输入的图像像素及其颜色 但我有点卡住了
  • 计算 XML 中特定 XML 节点的数量

    请参阅此 XML
  • 如何使用网格分割图像并保留透明度边界框

    我有一些 png 图像 我想将其分成几个部分 例如按网格或大小 但每个部分应具有与原始图像相同的边界框 透明度 Example 将图像分成两部分 原来的 200 89 Output 部分 1 png 200 89 第2部分 png 200
  • ASP Identity CoreGeneratePasswordResetTokenAsync 已过期

    我已经在 NET Core 2 1 中设置了一个 Identity Server 4 项目 一切正常 但是当我使用用户管理器生成重置密码令牌时 令牌在 24 小时后过期 我可以将其更改为 48 小时吗 我发送重置令牌的代码如下所示 var
  • jpegtran 优化而不更改文件名

    我需要优化一些图像 但不更改它们的名称 jpegtran copy none optimize image jpg gt image jpg 但是 这似乎创建了 0 的文件大小 当我对不同的文件名执行此操作时 大小仍然完全相同 怎么样 jp
  • ListItem 附加自定义值

    我在asp net中使用dropdownlist 它有代表下拉列表项目的ListItem集合 每个ListItem只有两个字段来保存数据 Value和Text字段 但这些还不够 我想保存更多数据对于每个项目 假设附加字段中有 Text1 和
  • Log4net不会将日志写入日志文件

    我使用 Log4net 创建了一个简单的场景 但我的日志附加程序似乎不起作用 因为消息没有添加到日志文件中 我将以下内容添加到 web config 文件中
  • 如何在 ASP.Net 中检索上传文件的“上次修改日期”

    我正在开发一个网站 客户端在其中上传一些文档文件 如 doc docx htm html txt pdf 等 我想检索上传文件的最后修改日期 我创建了一个处理程序 ashx 来完成保存文件的工作 Following is the code
  • 图像梯度角计算

    我实际上是按照论文的说明进行操作的 输入应该是二进制 边缘 图像 输出应该是一个新图像 并根据论文中的说明进行了修改 我对指令的理解是 获取边缘图像的梯度图像并对其进行修改 并使用修改后的梯度创建一个新图像 因此 在 MATLAB Open
  • 单击按钮时增加 ASP.net 中的变量

    我是 ASP NET 新手 我正在使用 VB net 创建一个 ASP net 网站 所以这是我的问题 Dim myCounter as Integer 0 Protected Sub Button1 Click ByVal sender
  • 使用 SSRS ASP.NET ReportViewer 和 Web 服务进行 Windows 身份验证

    我目前在使用 SSRS 时遇到一些问题 我有一个使用 Windows 身份验证的 ASP NET 网站 这工作正常 我知道网站当前用户是当前登录的用户 此站点上有一个 Web 表单 ReportViewer 当我不设置凭据时 这工作正常 然
  • 检查缓存后 System.Web.HttpContext.Current 自身为空

    今天我遇到了一个奇怪的问题 这对我来说毫无意义 总结如下 在方法内部 我检查缓存的项目 如下所示 private async Task
  • 如何阻止gridview列自动编码html实体

    我对 ASP NET 相当陌生 在使用 gridview 时遇到了问题 我添加了一些包含 符号的条目 例如 PR Murphy Associates 在将数据插入数据库之前 我没有对数据进行任何编码 当网格视图更改为编辑模式时 我的文本如下
  • 当存在打开的 ASP.NET 4.5 Websocket 时,IIS 应用程序池无法回收

    我遇到了一个问题 可以通过以下方式复制 您需要 IIS8 因此必须在 Windows 8 或 Windows Server 2012 R2 上 在 IIS 管理器中创建一个新网站 例如在端口 8881 上的 TestWs 指向一个新文件夹

随机推荐

  • 提交某种类型的模型后运行函数

    我想在实例时运行一个函数Post模型已承诺 我想运行它any他们提交的时间 所以我不想在任何地方显式调用该函数 我怎样才能做到这一点 def notify subscribers post send email to subscribers
  • 在 oracle 树查询中连接其他表

    给定一个简单的 id description 表t1 比如 id description 1 Alice 2 Bob 3 Carol 4 David 5 Erica 6 Fred 以及一个父子关系表t2 比如 parent child 1
  • web2py 的多列唯一约束

    可以将特定列标记为 unique true 在 web2py 中处理多列唯一约束的最正确方法是什么 例如 假设我有一个汇率表 它可以包含 来源货币 目标货币 和 汇率 列 两行具有相同的来源和目的地货币是没有意义的 使 from to 组合
  • 共享主键

    我猜这是一个半常见的问题 但我在过去的问题列表中找不到它 我有一组需要共享主键索引的产品表 假设如下 product1 table id name category other fields product2 table id name c
  • java ProGuard 删除(收缩)未使用的类

    假设我有这个 Java 应用程序 package com site public class MyAppBase package com site free import com site MyAppBase public class My
  • 如何快速了解 SOA? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 GeometryReader 而不填充视图

    这就是我想要的布局 import SwiftUI import PlaygroundSupport struct TestView View let text String var body some View Text self text
  • VBA:单击元素后无法更改图像控制图片

    Setup 我有一个带有图像控件元素的 Excel VBA 用户窗体 当单击表单中的按钮时 图像控件的Picture使用以下代码设置 更新源 Set MyForm imgControl Picture LoadPicture pathToF
  • Angular 5 - 我应该使用哪个来向后导航 - href 或 location.back()?

    我有一个应用程序 可以导航到一个无法前进的页面 想象一下 单击电视指南中的某个节目以打开包含该节目详细信息的页面 显然您会想要返回到电视指南 对于返回电视指南的按钮 我有一个 a tag 最建议的用例是 Using href guide o
  • 按日期和状态获取订单 woocommerce

    我需要获取 woocommerce 中的订单列表 包含开始日期 最终日期和状态 我尝试使用一些技术 如所描述的迈克 乔利 http develop woothemes com woocommerce 2014 08 wc 2 2 order
  • 取子集时保留 R 对象的类属性

    我有一个名为gene table的R对象 它有类foo 现在我将这个gene table子集为 gene data gene table 1 100 1 5 然而 当我打电话时class gene data 它不再属于类foo 但相反 它有
  • 为什么Python3.0中sort/sorted去掉了cmp参数?

    from 蟒蛇维基 https wiki python org moin HowTo Sorting The Old Way Using the cmp Parameter In Py3 0 the cmp parameter was re
  • 正式支持 MonoTouch 的 NoSQL 数据库

    我无法通过设备上的本地数据库找到正式支持 MonoTouch 的 NoSQL 数据库 如果是的话 有人可以在这里提供他们的名单吗 根据http nosql database org http nosql database org 有siaq
  • 尝试在jpa中删除时出现并发问题

    我有 2 个 EAR 1 EAR 和 2 EAR 这些有 websearvices 和其他代码 现在我有 1 个项目 DB prj 用于与数据库交互 现在所有项目 1 EAR 2 EAR DB prj 在各自的 meta inf 文件夹中都
  • 我的域正在 AWS Certificate Manager 中等待验证

    使用 AWS Certificate Manager 配置 mydomain com 并在等待验证中显示超过一天 即使 CNAME 记录已发布到该域名下的 AWS Route53 也是如此 一切似乎都合适 但尚不清楚 为什么域名没有得到验证
  • 404 找不到页面 codeigniter url

    我是一个使用 codeigniter 的初学者 我正在使用以下网址 http localhost ci index php shopcart http localhost ci index php shopcart 访问控制器 我收到错误
  • 验证网站所有权的简化方法(使用 JavaScript?)

    我有一个 Rails 应用程序 它要求用户在提交来自该网站的链接之前验证他们是否拥有该网站 我已经实现了一个网站验证系统 由于给出的答案 该系统可以正常工作我几个月前提出的一个问题 https stackoverflow com quest
  • Json 到 C# 对象处理动态属性

    我正在尝试在 c 对象中实现 json 结构 并且我正在尝试了解如何根据类型使用正确的对象 例如 public class RootObject public string name get set public Content conte
  • 有什么方法可以绘制印度地图吗?

    我正在尝试使用plotly 绘制印度地图 但无法找到方法来做到这一点 下面是我在美国尝试过的代码 import pandas as pd df sample pd read csv https raw githubusercontent c
  • 软件中显示过多“皮肤”检测

    我正在构建一个 ASP NET 网站 用户可以在其中上传自己的照片 每天可能会上传数千张照片 我的老板问过几次的一件事是 是否有任何方法可以检测到是否有任何照片显示太多 皮肤 并在编辑做出最终决定之前自动将这些照片标记为 仅限成人 最好的选