сжатие / упаковка - PullRequest
       13

сжатие / упаковка

1 голос
/ 01 июля 2010

У меня проблема: учитывая массив nxm, который содержит 0 или 1, мне нужно сгруппировать значения 0 в прямоугольники.Сначала я использовал простое дерево квадрантов, но разные узлы на одном и том же уровне дерева имеют одинаковое значение.Я не совсем уверен, работает ли R-дерево для моей проблемы или другой структуры данных, потому что я просто буду использовать эту структуру на этапе предварительного вычисления и все.

ps: я работаю с 2D-изображениями

1 Ответ

0 голосов
/ 20 августа 2010

Я бы выбрал рекурсивное решение.что-то вроде

iszeroes returns 1 if matrix has only zeroes
def search_for_zeroes(matrix, colormatrix)
!   conquer - part, matrix is essentially only a cell   
    if size(matrix) .eq. 1 then 
        search_for_zeroes = iszeroes(matrix)
        if iszeroes(colormatrix(matrix)then 
            colormatrix(matrix) = black) 
        end if  
    end if
!   divide - part, looks if four cells are all zero and colors them black
    if search_for_zeroes(upper_left) and search_for_zeroes(upper_right) 
        and search_for_zeroes(lower_left) and search_for_zeroes(lower_right) then
        search_for_zeroes = true
        colormatrix(matrix) = black         
    end if

я сам не кодировал, просто псевдокод.изменит его, когда я уйду с работы сегодня, но это тоже должно сработать.веселит

...