Como posso obter coordenadas de pixel de determinada cor (RGB) desta imagem usando python?

Sep 03 2020

Estou tentando fazer uma navegação interna e preciso de um mapa interno que o robô possa navegar automaticamente. Estou pensando em usar imagens que tenham cores diferentes para cada local (determinada seção), e quero saber como obter as coordenadas de determinadas cores. Para que eu possa designar lugares para determinada área de cor usando essas coordenadas. Atualmente estou usando o pycharm

Como posso obter as coordenadas de cada uma das partes rosa, roxa e amarela? O código RGB das cores são rosa (255,128,255), amarelo (255,255,0), roxo (128,128,255).

Esta é a imagem que vou usar

Respostas

ZdaR Sep 03 2020 at 19:53

A solução para o seu problema envolverá duas partes principais:

  1. Detectando a cor da imagem de entrada
  2. Convertendo o blob em uma única coordenada.

Vamos ver o primeiro problema. Você pode usar cv2.inRange()com várias cores, para obter uma máscara binária para cada um dos quadrados marcados na imagem de entrada.

Agora você pode usar cv2.findContoursna (s) máscara (s) binária (s) para detectar o maior contorno e tirar seu ponto médio ou algo assim.