Espero que este seja o lugar certo para perguntar. caso contrário, desculpe-me pelo meu erro e peça-me um site melhor.
Eu estou tentando implementar um detector de pele super simples usando alguma variedade de imagem hsb. Estou usando a abordagem descrita aqui e aqui .
Estou tentando usar uma fonte de vídeo da minha webcam. se eu usar iluminação solar, funciona muito bem (não é tão bom, mas é muito bom), mas com luz neon ... é uma bagunça. muita região branca é detectada e muito barulho em todos os lugares.
porque?
Estou usando o algoritmo descrito na segunda fonte :
- converter imagem ho espaço de cores HSV
- coloque branco no intervalo 0 <H <38
- filtro dilatado
- corroer filtro
- filtro de desfoque
Leve em consideração os diferentes valores obtidos na cor HSV quando a luz de neon for aplicada: um exemplo de seu desvio está aqui . Tente adaptar seu algoritmo para que ele se adapte a esses valores.
Aqui existe outro algoritmo para detectar a pele e, para detectar condições de luz, você pode usar este .
Outro algoritmo, relacionado à detecção da pele, mas não muito relacionado aos efeitos da luz neon, é esse .
fonte
As respostas que você obteve até agora apontam para bons métodos alternativos, mas se você estiver interessado em usar algo como o algoritmo inicial, provavelmente não é difícil de corrigir. Você só precisa ajustar as peculiaridades do HSV do OpenCV. Dados os resultados malucos, presumo que você provavelmente tenha usado uma das representações numéricas mais comuns do HSV na escolha de seus limites e / ou na conversão de pixels?
O OpenCV representa o HSV de maneira diferente da maioria das outras fontes que você pode ter encontrado:
Provavelmente tarde demais para ajudá-lo, mas era uma pergunta interessante, e outra pessoa poderia ter o mesmo problema.
fonte
fonte