【发布时间】: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