- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试开发一个应用程序,该应用程序将在提供图像后检测面部颜色。我能够从 OpenCV 中找到人脸检测算法并将其集成。但是我找不到任何可以检测面部颜色的示例或界面。
我有我要呈现的逻辑。请让我知道是否有任何可用的东西,或者我是否需要为此编写单独的函数?
逻辑:在给定的图像区域中,找出给定区域中重复次数最多的颜色细节。我已经查看了直方图,但不确定它会有什么帮助。
任何帮助将不胜感激。
最佳答案
要检测面部(或任何图像!)的肤色,我强烈建议您使用 HSV 色彩空间(或更复杂的色彩空间,如 LAB)而不是默认的 RGB 色彩空间,因为 RGB 值会因很多取决于强或暗的照明和阴影等。而 HSV 在处理照明差异方面要好得多,并且它为您提供易于使用的颜色值。
HSV 表示 Hue-Saturation-Value,其中 Hue 是颜色。例如:0 的色调是红色,50 的色调可能是绿色。饱和度是灰色,因此接近 0 的饱和度值意味着它看起来暗淡或灰色,而 200 的饱和度值可能是一种非常强烈的颜色(例如:如果色调为 0,则为红色)。 Value 是像素的亮度,所以 0 是黑色,255 是白色。
因此,是否使用直方图取决于您自己,但无论哪种方式,您都应该先将图像转换为 HSV,然后您可以使用直方图或简单搜索来查找最常见的色调值。色调值将是您想要的肤色或颜色。如果你想让它更高级一点,你可以考虑饱和度和亮度值的值来决定它实际上是黑色、白色还是灰色,而不是颜色。
我的 HSV 教程页面上有更多 OpenCV RGB 到 HSV 的转换信息:
关于iphone - 从图像中检测肤色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3700389/
我正在尝试显示一些文本,这些文本可能包含在 iOS 版本的应用程序上创建的表情符号。当我们在 Android 上渲染这些字符时,我会在表情符号旁边看到 [x]。 有没有办法扩展 Android Tex
我是一名优秀的程序员,十分优秀!