我想在图像中找到最现在的颜色。 (在Java / Android中) 我有一个来自openCv的Mat对象,它指的是图像,我可以得到每个像素的RGB值 很容易,但我认为只是平均红色,蓝色和绿色分别不是一个可行的算法。
我认为最好将{r,g,b}作为三重搜索。
你同意吗? 你能帮我实现这个算法,我不知道!提前谢谢答案 0 :(得分:0)
以下是执行三重计数的伪代码
Hashmap<string,int> colors
int max;
string max_color;
for(int i=0;i<height;i++) {
for(int j=0;j<width;j++) {
int count = 0;
string red = pixel[i][j].red.to_string;
string green = pixel[i][j].green.to_string;
string blue = pixel[i][j].blue.to_string;
string key = red + "," + green + "," + blue;
if(hashmap contains pixel[i][j]) {
count = hashmap.get(key)
count++;
hashmap.write(key,count);
}
else {
count = 1;
hashmap.insert(key,count);
}
if(count > max) {
max = count;
max_color = key;
}
}
}
res = max_color.split(',')