Решаем пазл с питоном - PullRequest
       22

Решаем пазл с питоном

0 голосов
/ 28 марта 2012

У вас есть 2000 необработанных изображений, 52x52 пикселей, RGB 24 бита, которые соответствуют частям головоломки, представляющей изображение размером 4000x1250 пикселей.

Каждая смежная пара изображений накладывается на 1 строку / столбецпикселей.Граничные изображения имеют дублированный ряд / столбец пикселей.Попробуйте перестроить загадку.

Я думаю об использовании PIL , OpenCV , возможно, других библиотек

РЕДАКТИРОВАТЬ

кто-то сделал это таким образом

private function runAlgorithm(index:int):void
{
    var currentBitmap:Object = allBitmaps[index];
    if(currentBitmap.visited) return;
    currentBitmap.visited = true;

    var left:int = leftMap[currentBitmap.leftRow];
    var right:int = rightMap[currentBitmap.rightRow];
    var top:int = topMap[currentBitmap.topRow];
    var bottom:int = bottomMap[currentBitmap.bottomRow];

    if(left != -1){
        allBitmaps[left].bitmap.x = currentBitmap.bitmap.x - 50;
        runAlgorithm(left);
    }
    if(right != -1){
        allBitmaps[right].bitmap.x = currentBitmap.bitmap.x + 50;
        runAlgorithm(right);
    }
    if(top != -1){
        allBitmaps[top].bitmap.y = currentBitmap.bitmap.y - 50;
        runAlgorithm(top);
    }
    if(bottom != -1){
        allBitmaps[bottom].bitmap.y = currentBitmap.bitmap.y + 50;
        runAlgorithm(bottom);
    }
}

Если это правильный путь, мне нужно написать аналогичный код или код на python

1 Ответ

0 голосов
/ 28 марта 2012

Используя numpy, я бы сделал большую матрицу из маленьких матриц 52x52.Каждая запись будет состоять из трех элементов (R, G, B).

Для объединения меньших матриц вы можете использовать hstack ( def ) и vstack ( def ).

...