首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找两个主峰和二维数组或直方图的峰之间的谷

查找两个主峰和二维数组或直方图的峰之间的谷
EN

Stack Overflow用户
提问于 2013-09-02 18:06:08
回答 1查看 1.1K关注 0票数 1
代码语言:javascript
复制
for (int i = 0; i < c.length; i++)
{
    for(int j=0; j<c[i].length;j++)
    {
         if(peak1[i]<c[i][j]){
         peak1[i] = c[i][j];
         peak1loc1[i]= j;
     }
}     


 println(peak1[2]);
 println(peak2[2]);`

这是我到目前为止所尝试过的。由于某些原因,peak1peak2打印相同的值。

我有一个保存图像RGB颜色值的二维数组。我想要找到每个通道的两个主峰(r,g,b),以及这两个主峰之间的谷,所以我将得到红色的两个主峰,绿色的两个主峰,蓝色的两个主峰和一个谷(主峰之间的最小值),所以总共有三个谷。

有没有什么算法可以解决这个问题,或者有人能给我一些想法,我怎么才能找到它们?伪代码将会非常有用。

EN

回答 1

Stack Overflow用户

发布于 2013-09-02 22:34:01

也许是这样的?

代码语言:javascript
复制
import java.util.*;
color[][]  c = new color [10][2];


void setup() {
  for (int i = 0; i < c.length; i++) {
    for (int j = 0; j < c[0].length; j++) {
      c[i][j] = color(random(255), random(255), random(255));
    }
  }

  float[] reds = new float[c.length*c[0].length];

  for (int i = 0; i < reds.length; i++) {
    if ( i < c.length)
      reds[i] = red(c[i][0]);
    else
      reds[i]=red(c[i-c.length][1]);
  }
  println("\n unsorted red values");
  println(reds);
  Arrays.sort(reds);
  println("\nSORTED");
  println(reds);

  println("\n\n the bigger red value is: " + reds[reds.length-1]); 
  println("\n the 2nd bigger red value is: " + reds[reds.length-2]); 
  println("\n the smaller red value is: " + reds[0]); 
  println("\n\n cheers");
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18570557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档