我目前正在尝试为盲人开发T恤颜色分析项目。对于这个项目,我应该在图像中获得最常出现的颜色或原色调,以识别T恤的颜色。我从互联网上寻找解决方案,但我找不到合适的解决方案。我正在为我的项目使用Java。
答案 0 :(得分:3)
v7调色板支持库包含Palette类,可让您从图像中提取突出的颜色。这个类可以在android.support.v7.graphics中找到,它可以提取以下颜色:
要在项目中使用Palette类,请将以下Gradle依赖项添加到应用程序的模块中:
dependencies {
...
compile 'com.android.support:palette-v7:21.0.0'
}
用法:
Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() {
public void onGenerated(Palette palette) {
// Do something with colors...
//You can select any of the colors.
Palette.Swatch swatch = palette.getVibrantSwatch();
if(swatch!=null){ // mind it, it can be null sometime.
int color = swatch.getRgb();
}
}
});
答案 1 :(得分:2)
获取位图并浏览每个像素。记住每一个的颜色。然后做一些平均值 - 将近色调制成一个(粉红色,深橙色和红色只能变成红色)。然后比较每种基本颜色(彩虹色)的计数。
答案 2 :(得分:0)
Colorific完成了大部分的努力工作,包括将RGB转换为CIE实验室颜色,以确保将感知上相似的颜色拼凑在一起,以及排除背景颜色。它在Python中,可以从命令行运行。所以你可以使用以下内容:
Runtime r = Runtime.getRuntime();
Process p = r.exec( ((URL) this.getClass().getResource("/python/colorific")).getFile() +" "+filename);
String out = CharStreams.toString(new InputStreamReader(p.getInputStream()));