Pular para o conteúdo principal

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

ProgramaçãoLinguagens de programação
Código
qg473687
Banca
FUNDATEC
Órgão
IF Sul - MG
Ano
2025
Nível
Superior
Cargo
PEBTT - Informática

Para responder a questão, considere o programa quadro1.py apresentado a seguir, feito em Python e utilizando OpenCV. 


Imagem da questão

Ao executar o programa, será desenhada na tela uma figura de quatro lados na cor:
  1. ALaranja.
  2. BAmarela.
  3. CVerde.
  4. DAzul.
  5. EVermelha.
Revelar gabarito e comentário

GabaritoD — Azul.

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: desenhando formas e cores em Python

Gabarito: letra D. O programa quadro1.py, ao executar, desenha uma figura de quatro lados na cor azul. Isso porque a função cv2.rectangle() do OpenCV, utilizada para desenhar retângulos (figuras de quatro lados), recebe como parâmetro de cor uma tupla no formato BGR (Blue, Green, Red), e a tupla (255, 0, 0) representa a cor azul, com o valor máximo (255) no canal azul e zero nos canais verde e vermelho.

O OpenCV é uma biblioteca de visão computacional amplamente utilizada em Python para processamento de imagens e vídeos. Uma de suas funcionalidades mais básicas é o desenho de formas geométricas, como linhas, círculos, retângulos e polígonos, diretamente em uma imagem ou em uma janela criada pela função cv2.imshow(). Para desenhar um retângulo, utiliza-se a função cv2.rectangle(), que recebe como argumentos a imagem de destino, as coordenadas do canto superior esquerdo e do canto inferior direito do retângulo, a cor e, opcionalmente, a espessura da linha.

A cor é um parâmetro crucial e, no OpenCV, ela é sempre representada no espaço de cores BGR (Blue, Green, Red), que é a ordem inversa do espaço RGB (Red, Green, Blue) mais comum em outras bibliotecas. Isso significa que, para definir uma cor, você deve fornecer uma tupla de três valores inteiros entre 0 e 255, onde o primeiro valor corresponde à intensidade do azul, o segundo ao verde e o terceiro ao vermelho. Essa inversão é uma pegadinha clássica para quem está acostumado com o padrão RGB.

No programa quadro1.py, a cor é definida pela tupla (255, 0, 0). Interpretando essa tupla no padrão BGR, temos o valor máximo (255) no canal azul e zero nos canais verde e vermelho. Portanto, a cor resultante é o azul puro. Se a tupla fosse (0, 0, 255), a cor seria vermelha; se fosse (0, 255, 0), seria verde. Essa distinção é fundamental para responder corretamente à questão.

A banca explora exatamente essa confusão entre os padrões de cor BGR e RGB. O candidato que não conhece a particularidade do OpenCV pode interpretar a tupla (255, 0, 0) como vermelho, pois no padrão RGB o valor máximo no primeiro canal corresponde à cor vermelha. No entanto, no OpenCV, o primeiro canal é o azul, o que torna a alternativa D (Azul) a correta. É essencial memorizar essa característica da biblioteca para não cair nessa armadilha.

Guarde a regra: no OpenCV, a ordem dos canais de cor é BGR, e não RGB. Essa é a chave para desvendar a questão e também para evitar erros em outras situações que envolvam manipulação de cores com essa biblioteca.

1(255, 0, 0)
Canal azul no máximo
Verde e vermelho zerados
Azul
2(0, 255, 0)
Canal verde no máximo
Verde
3(0, 0, 255)
Canal vermelho no máximo
Vermelho
4(0, 255, 255)
Verde + vermelho
Amarelo
5(0, 165, 255)
Vermelho + verde
Laranja
Cores no OpenCV (padrão BGR)
LEVELsoulevel.com.br
Cores no OpenCV (padrão BGR): (255, 0, 0) (Canal azul no máximo, Verde e vermelho zerados, Azul); (0, 255, 0) (Canal verde no máximo, Verde); (0, 0, 255) (Canal vermelho no máximo, Vermelho); (0, 255, 255) (Verde + vermelho, Amarelo); (0, 165, 255) (Vermelho + verde, Laranja)

Alternativa A — ❌ Incorreta

A cor laranja não é representada pela tupla (255, 0, 0). No padrão BGR, a cor laranja é uma combinação de vermelho e verde, com valores como (0, 165, 255). A alternativa confunde a representação da cor laranja com a do azul, provavelmente por não conhecer o padrão BGR do OpenCV.

Alternativa B — ❌ Incorreta

A cor amarela, no padrão BGR, é representada pela tupla (0, 255, 255), que combina os canais verde e vermelho. A alternativa erra ao associar a tupla (255, 0, 0) à cor amarela, ignorando a ordem dos canais no OpenCV.

Alternativa C — ❌ Incorreta

A cor verde, no padrão BGR, é representada pela tupla (0, 255, 0). A alternativa erra ao associar a tupla (255, 0, 0) à cor verde, pois o valor máximo está no canal azul, não no verde.

Alternativa D — ✅ Correta ⟵ GABARITO

A tupla (255, 0, 0) no padrão BGR do OpenCV representa a cor azul, pois o valor máximo (255) está no canal azul, e os canais verde e vermelho estão zerados. A função cv2.rectangle() utiliza esse padrão de cores, e a figura de quatro lados desenhada será azul.

Alternativa E — ❌ Incorreta

A cor vermelha, no padrão BGR, é representada pela tupla (0, 0, 255). A alternativa erra ao associar a tupla (255, 0, 0) à cor vermelha, pois inverte a ordem dos canais, confundindo o padrão BGR com o RGB.

NÃO CAIA NESSA!

A banca explora a inversão dos canais de cor entre os padrões RGB e BGR. No OpenCV, a ordem é BGR, então (255, 0, 0) é azul, não vermelho. Lembre-se sempre dessa particularidade para não cair nessa armadilha clássica.

Gabarito: letra D

Link permanente: /questoes/qg473687