Responder a: Divisão de imagem

#45807
Gabriel Alves
Moderador

    Olá João!

    Para dividir uma imagem maior em várias subimagens você pode usar dois loops para cortar a imagem em blocos de 640 x 640 pixels.

    A ideia é basicamente iterar sobre as coordenadas da imagem original e através dessas coodenadas xy você delimita o inicio/fim de cada pedaço da imagem, de forma que a cada iteração uma subimagem seja extraída e armazenada.

    Aqui está um exemplo de código:

    # Carrega a imagem
    imagem = cv2.imread('sua_imagem.jpg')
    
    # (Tamanho das subimagens)
    altura_subimagem = 640
    largura_subimagem = 640
    
    # Obter as dimensões da imagem original
    altura, largura, _ = imagem.shape
    
    # Loop para cortar as subimagens
    for i in range(0, altura, altura_subimagem):
      for j in range(0, largura, largura_subimagem):
        # Coordenadas para cortar
        subimagem = imagem[i:i+altura_subimagem, j:j+largura_subimagem]
    
        # Salvar ou processar a subimagem
        nome_arquivo = f'subimagem_{i}_{j}.jpg'
        cv2.imwrite(nome_arquivo, subimagem)

    O loop corta a imagem em subimagens e cada subimagem é salva como um arquivo separado. Você pode ajustar o nome dos arquivos conforme necessário. Com isso, sua imagem original de 3.000 x 4.000 pixels será fragmentada em várias imagens menores, todas do tamanho que você especificou (640 x 640 pixels).