Ir ao conteúdo
  • Cadastre-se
Mayrinck Bernardo

C Como abrir os pixels de uma imagem e comparar com outra

Posts recomendados

Ola estou com um projeto de um programa que compara um print de tela com outra imagem semelhante e mostra as diferenças. Preciso saber como posso fazer isso entao pensei que seja possivel abrir os pixels da imagem para comparar. Ate o momento so tenho experiencia em c e c++, deveria migrar para outra linguagem para tentar solucionar isso ou é possivel?.se possivel sera que precisaria de alguma biblioteca especial tipo a allegro ou outra que trabalhe com imagem? Nao pretendo utilizar IA quero algo bem simples. Por onde devo começar?

Para evitar que o o primeiro comentario alguem diga que nao entendeu o projeto e explique mais. Eu preciso apenas distinguir a posicao de um imagem na tela por exemplo: salvarei 2 imagens: na primeiro tenho uma imagem posicionada a esquerda e na outra a mesma imagem a direita. Entao vou tirar um print e o programa ira comparar e dizer se no print a imagem esta a esquerda ou direita ou informar que nao foi encontrada a imagem. 

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Mayrinck Bernardo       na linguagem c e c++ , voce pode fazer a comparacao de cada pixel de uma determinada area com outra ,

se voce souber a posicao de cada uma na tela ,  comparando o valor RGB de cada pixel e com isso verificar se as duas sao iguais ,  entao voce precisarah usar comandos mais avancados do que os usados no console ,  e para isso voce pode usar a API do windows ,  criando um projeto do tipo win32 GUI , e ali use o comando getpixel para pegar o valor RGB do pixel ,  e com os comandos  Rvalue , Gvalue e Bvalue , voce consegue saber a quantidade de cor vermelha , verde e azul  que cada um tem   ,   mas dependendo do tamanho da imagen vai demorar bastante para verificar todos os pixeis ,  faca seu codigo e poste aqui , para vermos como esta e em que podemos ajudar     .

  • Obrigado 1
  • Haha 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 16/01/2020 às 18:55, devair1010 disse:

 entao voce precisarah usar comandos mais avancados do que os usados no console ,  e para isso voce pode usar a API do windows ,  criando um projeto do tipo win32 GUI , e ali use o comando getpixel para pegar o valor RGB do pixel

 

@devair1010 as imagens pela definição do tópico já foram capturadas. Não vão estar na tela e não há "pixels" mais. Apenas bits na prática. Pode-se usar uma aplicação de console e nem precisa de uma interface especial: apenas a linha de comando fornecendo os nomes das duas telas capturadas e uma terceira com a imagem alvo.

 

Em 14/01/2020 às 13:49, Mayrinck Bernardo disse:

print de tela com outra imagem semelhante e mostra as diferenças

 

Dependendo de sua definição de semelhança isso pode ser mesmo o diabo pra escrever e seria o caso de treinar um modelo AI mesmo para reconhecer o padrão.

 

Mas se for para procurar algo igual no sentido matemático provavelmente não.

 

Seria melhor postar as tais imagens e definir essa noção de semelhança antes de tudo.

 

FORMATO  DE CAPTURA

 

É essencial saber o formato da captura. Definido o formato basta ler as especificações e escrever o código. Ou mesmo usar alguma biblioteca. Fiz algo assim em C e C++ para BMP e JPG então tenho alguns documentos. E classes talvez. Anexo uma versão resumida do formato para JPG e pode ajudar a ter uma ideia para esse formato. Tenho mais material. Escreva mais sobre o projeto

 

 

JPEG File Interchange Format 1.02.pdf

  • Obrigado 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade a pergunta está muito mal formulada, e desta forma é impossivel ajudar até que volte e a defina melhor.

  • Obrigado 1
  • Haha 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 @arfneto mas o que seria mais preciso, o que me daria uma resposta mais rápida? um print capturado na hora e comparado com uma imagem já salva. ou uma interação em tempo real com a tela do meu ocmputador se é que isso é possivel? eu pretendo que o programa me der uma resposta em menos de 2 segundos

adicionado 17 minutos depois

 @vangodp pretendo criar alguns bots para games então pretendo capturar posição dos personagem e fazer alguma ação de acordo. mas não pretendo criar um controlador automatico e nem nada de complicado acho que apenas um printf me informando a posição seria algo extraordinário

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Trata-se de uma imagem em movimento? É muito diferente isso. O game tem luz, reflexos, sombras... Se está falando em buscar polígonos na imagem é uma coisa, se está falando em procurar um personagem que se move para decidir se ele está na tela é outra...

 

2s é um tempo e tanto para comparar as imagens, mas a história pode ser outra. Como vai salvar essa imagem? Em que formato? Qual a resolução do jogo? Interferir com o jogo para capturar a tela é outra história. Como vai fazer?

 

  • Curtir 1
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quero muito ter essa experiencia. Estou buscando alguns cursos que falam de graficos no youtube mas nao estão me ajudando muito.

Nao consigo entender como explicar uma regiao especifica para o programa e fazer me retornar o resultado esperado mas tenho fé que nesse ano de 2020 vou alcançar esses objetivos.  Nao que tenho assim um game especifico mas tenho exemplos que quero desenvolver trabalhando apenas com imagens.

 

Nessa primeira imagem ilustrativa tem na tela a imagem de um game famoso mmorpg. No seu canto inferior direito ha uma pequena aba chamada battle que apresenta a presença de criaturas proximas ao personagem e caso nao haja criatura fica vazia. Ok entao e fácil programar eu so tenho 2 casos que é vazio ou nao vazio independente de tipo de criatura. If naovazio Printf " uma criatura surgiu". Ok parece simples.É muito fácil encontrar na internet varios programas executaveis e injetaveis que fazem muito mais do que isso atacando diretamente o jogo e mudando completamente. mas trabalhar apenas com imagens me parece ser muito mais inteligente. entao vamos para mais o outro exemplo.

 

Na segunda imagem temos um famoso game java jogado diretamente pelo browser. No canto superior direito ha um pequeno mapa que resume toda a fase que estiver sendo jogada no momento. onde seu personagem é resumido em um pequeno ponto azul(alguns amigos do time tambem), e seu inimigo em um ponto vermelho. E todo enrredo se resume em saber a distancia exata de um ponto para o outro. O unico misterio que quero entender é fazer o console reconhecer meu pontinho azul e o pontinho vermelho lembrando que tenho 10 segundos para fazer a jogada e as fases sao aleatorias.

15872.2644.1692.1a.500.jpg

images.jpeg

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Aprenda_a_Ler_Resistores_e_Capacitores-capa-3d-newsletter.jpg

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!