Saturday 29 July 2017

Vlfeat Sift Opções Binárias


Então, como posso chamar a função vlubcmatch em código C Esta é uma função MEX que só está prevista para ser chamado de MATLAB. Você não pode reutilizá-lo como-é de um programa de uso geral C. O objetivo de detectar se uma imagem contém o objeto em outra imagem. Como fazer SIFT algoritmo de correspondência se eu usar vlfeat VLFeat API C não fornece SIFT funções correspondentes out-of-the-box. Então, basicamente, você precisa adaptar a chamada seção de código de teste de razão 1 desta seção de código MATLAB C que é bastante fácil (veja abaixo). A principal desvantagem se você deseja executar correspondência robusta é que esta função não leva em conta a geometria. As coordenadas dos pontos-chave. O que você precisa além disso é uma verificação de consistência geométrica que é normalmente realizada por descobrir se existe uma homografia entre as duas imagens (usando como entrada as correspondências de descritor obtidas com o teste de razão). Isso é feito com um algoritmo como RANSAC, uma vez que as correspondências podem incluir outliers. Mas também você pode acelerar o cálculo de correspondências com uma árvore kd. Portanto, uma alternativa se você precisar de uma implementação C simples está confiando em Open SIFT por Rob Hess, que inclui tudo o que você precisa, bem como uma ferramenta de linha de comando pronta a usar (e, portanto, exemplo) de correspondência: K1. Número de descritores na imagem 1, K2. Número de descritores na imagem 2, ND. Descritor (128 para SIFT), descr1 e descr2. Descritores das imagens 1 e 2 resp. Na ordem principal da linha, por exemplo, linhas K1 x colunas ND), trilho. Valor de limiar de teste de razão, por exemplo, 1,5 no código MATLAB. Você usará a biblioteca vlfeat da mesma forma que você usa qualquer outra biblioteca com C. Primeiro certifique-se de ter a biblioteca instalada em seu computador e saber onde ela está instalada. Você precisará incluir o cabeçalho necessário para cada parte do vlfeat que você está usando. Geralmente um cabeçalho de biblioteca genérico para vlfeat e, em seguida, um cabeçalho específico para sift (por exemplo, incluir sift. h) (às vezes não há cabeçalho geral). Você precisará segurar gcc ou g comando inclui o INCLUDEPATH apropriado e LIBRARYPATH para seu ambiente que permitirá gcc para localizar seus arquivos vlfeat. (Por exemplo, - I / path / to / dir / holdingsift. h e - L / path / to / vlfeatlib) Então você vai acabar com algo parecido com isto para C: Há documentação on-line que ajudará. Veja: como configurar um projeto C básico que usa a biblioteca VLFeat Se você tiver outras perguntas, basta soltar uma linha nos comentários. As APIs C são descritas em vlfeat. org/api/sift. html. Existe apenas o descritor de sift gerando (extraindo) a API lá. Não consigo encontrar uma API relacionada correspondente. E na fonte, eu acho vlubcmatch. c que está fazendo um algoritmo de correspondência quotbasicquot. Mas eu não sei como chamar essa função de algoritmo neste arquivo. c (onde há muitas definições de macros que parecem relacionadas a matlab). Minha principal questão é como fazer SIFT algoritmo correspondente se eu usar vlfeat ndash mrmoment 14 de novembro de 14 at 8:52 Essa foi a parte principal da resposta. Você incluirá sift. h no seu código junto com o outro inclui (stdio. h, etc.). Em seguida, você usará a função, com os argumentos corretos, conforme especificado em sift. h no seu código. Você então compilará o código (gcc ou g) especificando a biblioteca - lvl para que o vinculador saiba incluir esse código e você pode / não precisar especificar o - I47path e / ou - L47path para que gcc e ld encontrem o Lib e sift. h, dependendo do seu ambiente. Sem truques. Ndash David C. Rankin Nov 14 14 em 8:56

No comments:

Post a Comment