好吧,我有一个灰度级的图像,他的行以不同的顺序排列,所以我想按顺序排列一个具有健身功能的行,知道哪个顺序是最好的,我做了以下启发式:
for(int i=0;i<or.size()-1;i++) {
for(int j=0;j<imagen[0].length;j++) {
aux+=imagen[or.get(i)][j];
aux2+=imagen[or.get(i+1)][j];
}
fitness+=Math.abs(aux-aux2);
}
return fitness;
我正在做的是将每一行的灰色相加并查看与下一行的不同。我认为正确的顺序是变化较小的行,所以正确的顺序应该是具有最小适应度的顺序。但它不起作用,任何关于如何改变启发式以了解最佳顺序的想法?
为问题添加一些信息:图像以像素信息的矩阵形式给出,但行的顺序不正确,列很好。
答案 0 :(得分:0)
我通过计算每个像素与其邻居之间的距离来解决,这意味着:距离=总和(abs(current-corner1)+ abs(current-corner2)+ abs(current-top)......等等...