Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FUNDATEC 2024

ProgramaçãoLinguagens de programação
Código
qg164393
Banca
FUNDATEC
Órgão
IF Sul - MG
Ano
2024
Nível
Superior
Cargo
Professor do Ensino Básico, técnico e Tecnológico: MCH-02 - Informática
Com base no trecho de código abaixo, escrito na linguagem Python e que utiliza recursos do OpenCV, qual é o resultado esperado a partir da execução do código?Imagem associada para resolução da questão
  1. AUm novo arquivo "imagem_nova.jpg" será criado e convertido para o formato JPEG.
  2. BUm novo arquivo "imagem_nova.jpg" será criado e convertido para o formato JPEG, e será excluído o arquivo "imagem.png".
  3. CUm novo arquivo "imagem_nova.png" será criado e convertido para o formato JPEG, sem que seja alterada a extensão do arquivo.
  4. DO arquivo "imagem.png" será convertido para o formato JPEG, sendo o mesmo renomeado como "imagem_nova.jpg", e será criado um novo arquivo "imagem_nova.jpg".
  5. EO arquivo "imagem.png" será convertido para o formato JPEG e renomeado como "imagem_nova.jpg".
Revelar gabarito e comentário

GabaritoA — Um novo arquivo "imagem_nova.jpg" será criado e convertido para o formato JPEG.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

OpenCV: leitura e gravação de imagens em Python

Gabarito: letra A. O código lê o arquivo "imagem.png", processa a imagem e a grava em um novo arquivo chamado "imagem_nova.jpg" no formato JPEG. O arquivo original "imagem.png" permanece intacto, pois a função de gravação cria um novo arquivo sem excluir o existente.

O OpenCV é uma biblioteca de visão computacional amplamente utilizada em Python. Suas funções principais para manipulação de arquivos de imagem são imread() (para ler) e imwrite() (para gravar). A função imwrite() recebe dois argumentos: o caminho/nome do arquivo de destino e a matriz de pixels da imagem. O formato de gravação é determinado pela extensão do arquivo de destino — se você especificar ".jpg", a imagem será codificada como JPEG; se especificar ".png", será codificada como PNG.

O ponto crucial é que imwrite() cria um novo arquivo. Ela não renomeia nem exclui o arquivo original. Se o arquivo de destino já existir, ele será sobrescrito, mas o arquivo de origem ("imagem.png") não é afetado. Isso significa que, após a execução, teremos dois arquivos no diretório: o original "imagem.png" e o novo "imagem_nova.jpg".

Vamos analisar o fluxo do código:

  1. Leitura: cv2.imread('imagem.png') carrega a imagem do arquivo PNG para a memória como uma matriz NumPy.

  2. Processamento: (se houver) qualquer operação de processamento é aplicada à matriz.

  3. Gravação: cv2.imwrite('imagem_nova.jpg', imagem) cria um novo arquivo "imagem_nova.jpg" e salva a imagem nele, codificada no formato JPEG.

A pegadinha desta questão está em confundir a criação de um novo arquivo com a renomeação ou exclusão do arquivo original. A banca explora exatamente essa confusão: o candidato pode pensar que, ao gravar com um novo nome, o arquivo original é renomeado ou excluído. Mas não é isso que acontece — imwrite() simplesmente cria um novo arquivo, deixando o original intacto.

Guarde esta distinção: criar um novo arquivo ≠ renomear ≠ excluir. É exatamente nessa fronteira que as alternativas se dividem.

Alternativa A — ✅ Correta ⟵ GABARITO

Esta alternativa descreve com precisão o comportamento do código. A função imwrite('imagem_nova.jpg', imagem) cria um novo arquivo com o nome "imagem_nova.jpg" e o formato JPEG (determinado pela extensão). O arquivo original "imagem.png" não é excluído nem renomeado — ele permanece no diretório. Portanto, o resultado é exatamente: um novo arquivo "imagem_nova.jpg" criado e convertido para o formato JPEG.

Alternativa B — ❌ Incorreta

O erro está na afirmação de que o arquivo "imagem.png" será excluído. A função imwrite() não tem nenhum comportamento de exclusão. Ela apenas cria ou sobrescreve o arquivo de destino. O arquivo original permanece intacto após a execução. A banca tenta fazer o candidato acreditar que a gravação de um novo arquivo implica a remoção do original, o que não é verdade.

Alternativa C — ❌ Incorreta

Esta alternativa contém dois erros. Primeiro, afirma que o novo arquivo será "imagem_nova.png", mas o código especifica "imagem_nova.jpg". Segundo, diz que a imagem será "convertida para o formato JPEG, sem que seja alterada a extensão do arquivo" — o que é contraditório: se o arquivo é "imagem_nova.png", a extensão é PNG, não JPEG. A conversão para JPEG exige a extensão ".jpg" ou ".jpeg". O código cria um arquivo com extensão ".jpg", portanto o formato é JPEG.

Alternativa D — ❌ Incorreta

Esta alternativa afirma que o arquivo "imagem.png" será renomeado para "imagem_nova.jpg" e que um novo arquivo será criado. Isso é contraditório: se o arquivo é renomeado, não há um novo arquivo criado — é o mesmo arquivo com nome diferente. Na prática, imwrite() não renomeia nada; ela cria um novo arquivo independente. O arquivo original "imagem.png" permanece com seu nome original.

Alternativa E — ❌ Incorreta

O erro está em afirmar que o arquivo "imagem.png" será renomeado para "imagem_nova.jpg". A função imwrite() não renomeia arquivos. Ela cria um novo arquivo com o nome especificado, deixando o original intacto. O resultado é a coexistência de dois arquivos: "imagem.png" e "imagem_nova.jpg".

Gabarito: letra A

Link permanente: /questoes/qg164393