Como cortar uma imagem verticalmente em duas imagens de igual tamanho

Então tenho uma imagem de 800 x 600 que quero cortar verticalmente em duas imagens de tamanho igual usando OpenCV 3.1.0. Isto significa que no final do corte, eu deveria ter duas imagens que são 400 x 600 cada e são armazenadas em suas próprias variáveis PIL.

Aqui está uma ilustração:

Paper being cut into halves

Obrigado.

editar: quero a solução mais eficiente, por isso, se essa solução estiver a usar numpy splicing ou algo do género, então vá em frente.

Author: Halp, 2017-07-29

1 answers

Você pode tentar o seguinte código que irá criar dois numpy.ndarray instâncias que você pode facilmente exibir ou gravar novos arquivos.

from scipy import misc

# Read the image
img = misc.imread("face.png")
height, width = img.shape

# Cut the image in half
width_cutoff = width // 2
s1 = img[:, :width_cutoff]
s2 = img[:, width_cutoff:]

# Save each half
misc.imsave("face1.png", s1)
misc.imsave("face2.png", s2)

O ficheiro face.png é um exemplo e precisa de ser substituído pelo seu próprio ficheiro de imagem.

 5
Author: fsimkovic, 2018-09-02 20:21:17