大家来找茬儿,这个游戏大家玩儿过吧。我想做个能把这两幅图不同之处找出来的软件。
我的想法是:
1、用QImage.load载入两幅图image1和image2,生成一张空白图片image3
2、把image1和image2按像素比对,如果相同的坐标处他们的RGB值相同,那么image3相应的像素点画这个相同的RGB值。
3、如果不同,那么在这个像素点画上特殊颜色标记出来,不如说红色。
预想的效果是:生成的第三张图中,不同的地方用红色高亮表示,相同的地方没有动。
我遇到的问题:
1、在人眼看来相同的两个部分,在细节上的像素排布有着细微的差别,在计算机看来,这就是完全不同。所以比较的效果非常差。虽然主要的部分有大块红色出现,但是其他地方有噪点,有很多散漫的红色点。
2、算法不够好,需要优化算法。我是按像素点扫描的:
for(x=0;x<maxrow;x++)
{
for(y=0;y<maxcolumn;y++) //这是nXn的计算量。如果是800X800的图,就计算了160000次
//..........比较图片的代码
}