1
resposta

Imagem devolvendo menos pontos que o máximo

Quando eu uso o orb.detect e coloco 512 ele me retorna apenas 490 pontos e não os 512 que eu coloquei, eu estou usando a mesma imagem que foi usada na aula que foi pega no drive de vocês e importei para o meu conforme a descrição. Isso é normal ou tem como corrigir?

1 resposta

Oiii Alex, como você está?

Peço desculpas pela demora em obter um retorno.

Como está utilizando a mesma imagem e os mesmos parâmetros, o valor do shape também deveria retornar 512. Peço que confira se sua função está como na forma abaixo:

def get_descritores(img_caminho):

  LARGURA = 360
  ALTURA = 360

  # Ler a imagem
  img_teste = cv2.imread(img_caminho, 0)

  # Redimensionar a imagem
  img_redimensionada = cv2.resize(img_teste, (LARGURA, ALTURA), interpolation=cv2.INTER_CUBIC)

  # Remover ruídos
  img_equalizada = cv2.equalizeHist(img_redimensionada)
  img_suavizada = cv2.GaussianBlur(img_equalizada, (9, 9), 1)

  # Detectar os pontos chaves
  orb = cv2.ORB_create(nfeatures=512)
  pontos_chave = orb.detect(img_suavizada, None)

  pontos_chave, descritores = orb.compute(img_suavizada, pontos_chave)

  return descritores

Caso a inconsistência de valores continue, peço que compartilhe o link do seu notebook para que eu possa avaliar o código. Desse modo consigo te auxiliar de forma mais direcionada e entender o motivo da inconsistência.

Grande abraço e bons estudos!