我正在实现图像的中值切割算法,我有一个ArrayList与所有像素,但现在我需要基于一个颜色通道对它进行排序。这是我的Pixel类。排序对象的ArrayList,但排序键不断变化
public class Pixel implements Comparable<Pixel>{
public int x,y;
public double[] colors;
public Pixel(int x, int y, double[] colors){
this.x=x;
this.y=y;
this.colors=colors;
}
@Override
public int compareTo(Pixel compareNode) {
//not sure what to do here
return 0;
}
}
的颜色阵列保持在[0],[1]和[2]分别但是当我重写的compareTo()方法不知RGB值我将如何通过特定的排序颜色通道。我只需要实现我自己的排序方法?
你总是希望以同样的方式像素进行排序,或者你希望能够选择排序哪个颜色通道的?如果你想要后者,你可能想创建一些'Comparators',而不是'Comparable'。 – andersschuller
**“我需要根据一个颜色通道对其进行排序”**表示什么?您是否需要按照以下方式对所有像素进行排序:基于RED,然后基于GREEN,然后基于BLUE? – STaefi
我需要根据最宽的颜色通道进行排序。所以说红色值从2-250,绿色从45-180,蓝色从100-200我想要整个列表相对于红色通道排序。 – Alex