JavaRush /Blogue Java /Random-PT /Encontrar o centro de uma figura irregular em um plano
fatfaggy
Nível 26
Киев

Encontrar o centro de uma figura irregular em um plano

Publicado no grupo Random-PT
Olá a todos. Estou resolvendo um problema simples agora. A condição soa mais ou menos assim:
Dada uma matriz (matriz bidimensional), em que cada elemento representa um pixel. Os pixels podem ser vermelhos, pretos ou alguma outra cor. É necessário implementar uma busca pelo efeito de olhos vermelhos na imagem. Se o centro dos pixels pretos coincidir com o centro dos pixels vermelhos, então encontramos um olho vermelho.
Supõe-se que os limites do intervalo de pixels vermelhos sejam mais largos que os limites do intervalo de pixels pretos. Além disso, as opções não são consideradas se a imagem contiver pixels vermelhos e pretos fora do “olho”. Tudo fora do “olho” terá uma cor diferente. Planejei implementá-lo usando (aproximadamente) esse algoritmo. Dois loops, um aninhado no outro. Um passa por X, o outro por Y. Assim que encontramos o pixel vermelho, fixamos suas coordenadas como as iniciais e procuramos as coordenadas finais. Assim que descobrirmos que os pixels vermelhos não aparecem mais, fixamos o último pixel vermelho que encontramos como as coordenadas finais do intervalo de pixels vermelhos. O mesmo acontece com pixels pretos. Depois dividimos os intervalos ao meio e encontramos os centros. Tal algoritmo funcionará muito bem com figuras de formato mais ou menos regular (círculo). E aqui resolvi complicar minha tarefa)) Ou seja, entender como melhorar o algoritmo para formas irregulares. Por exemplo, se uma pessoa tem algum problema de visão (devido ao qual o formato do olho pode estar incorreto), ou a foto foi tirada em ângulo, ou alguma outra situação... Uma pesquisa rápida me levou a artigos da Wikipedia sobre o centro de massa e baricentro. Mas há tanta linguagem assustadora e terrível aí que decidi deixar isso de lado por enquanto e perguntar à comunidade como você implementaria isso. :)
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION