启发式知道正确的顺序

时间:2018-01-16 22:45:41

标签: java image image-processing mathematical-optimization heuristics

好吧,我有一个灰度级的图像,他的行以不同的顺序排列,所以我想按顺序排列一个具有健身功能的行,知道哪个顺序是最好的,我做了以下启发式:

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;

我正在做的是将每一行的灰色相加并查看与下一行的不同。我认为正确的顺序是变化较小的行,所以正确的顺序应该是具有最小适应度的顺序。但它不起作用,任何关于如何改变启发式以了解最佳顺序的想法?

为问题添加一些信息:图像以像素信息的矩阵形式给出,但行的顺序不正确,列很好。

1 个答案:

答案 0 :(得分:0)

我通过计算每个像素与其邻居之间的距离来解决,这意味着:距离=总和(abs(current-corner1)+ abs(current-corner2)+ abs(current-top)......等等...