【问题标题】:Heuristics to know correct order启发式知道正确的顺序
【发布时间】:2018-01-16 22:45:41
【问题描述】:

嗯,我有一张灰度图像,他的行以不同的顺序排列,所以我想为了让具有适应度函数的行知道哪个顺序是最好的,我做了以下启发式:

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;

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

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

【问题讨论】:

  • 这是一个非常病态的问题,您需要先验信息将其规范化为解决方案。如果不是图像处理专家,很明显您已经添加了一个假设:行之间的平滑度。但是你的只是一维的(图像不是)!想象一下当白色背景上有一条对角线时,你的适应度函数会做什么。您可能需要一些基于窗口/块的测量,它还可以处理包含两个维度的邻域中的像素(我想是 8 个邻域)
  • 但我唯一不同的顺序是行,列的顺序很好。图像以矩阵形式给出,包含像素数据,但行顺序错误
  • 给我们正确的问题陈述,我们会看到 - 很明显你无法解释问题

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    相关资源
    最近更新 更多