[EP15] - Função removeHorizontalSeam()

[EP15] - Função removeHorizontalSeam()

por Alessandro Bezerra da Silva -
Número de respostas: 2

Tenho uma dúvida... como deve se comportar a função removeHorizontalSeam() ?

Entendo que a função deve remover uma linha da picture... Sempre a primeira ou a última. Porém não sei como escolher qual das duas linhas remover.

Pensei no seguinte... Calculo a média das entradas do vetor seam[] e se a média estiver na parte mais abaixo da picture, removo a última linha, e se estiver mais pra cima, removo a primeira linha.

Implementei essa estratégia, porém quando chamo o cliente ResizeDemo com o exemplo que está no enunciado do EP15, a picture final é diferente...

Em resposta à Alessandro Bezerra da Silva

Re: [EP15] - Função removeHorizontalSeam()

por José Coelho de Pina -

Ois,

como deve se comportar a função removeHorizontalSeam() ?

Legal!

A função removeHorizontalSeam(int[] seam) deve remover a linha horizontal representada por seam.
No exemplo do enunciado seam = { 2, 2, 1, 2, 1, 2 } assim as posições o objeto Picture que devem ser removidas são

  [0][2]  [1][2]  [2][1]  [3][2]  [4][1]  [5][2]`.

Essa linha seam = { 2, 2, 1, 2, 1, 2 } foi encontrada pelo método findHorizontalSeam(), pois

  [0][2]  [1][2]  [2][1]  [3][2]  [4][1]  [5][2]`.

é a linha (seam) horizontal de menor energia:

  111.10 + 138.69 + 151.02 + 133.07 + 107.89 + 143.75 = 785.53