Vlfeat Støv Binære Alternativer


Så hvordan kan jeg ringe vlubcmatch-funksjon i C-kode Dette er en MEX-funksjon som bare er ment å bli kalt fra MATLAB. Du kan ikke bruke den som en annen fra et generelt C-program. Målet å oppdage om et bilde inneholder objektet i et annet bilde. Slik gjør du SIFT-matchningsalgoritmen hvis jeg bruker vlfeat VLFeat C API, gir ikke SIFT-matchingfunksjoner ut av boksen. Så i utgangspunktet må du tilpasse den såkalte forholdstest 1-kodeseksjonen fra denne MATLAB C-koden som er ganske enkel (se nedenfor). Den største ulempen hvis du vil utføre robust samsvar er at denne funksjonen ikke tar hensyn til geometrien. dvs. tastene koordinater. Det du trenger i tillegg er en geometrisk konsistenskontroll som vanligvis utføres ved å finne ut om det er en homografi mellom de to bildene (ved hjelp av input-beskrivelsen samsvarer man med forholdstesten). Dette gjøres med en algoritme som RANSAC siden korrespondansene kan inkludere utelukker. Men også du kan øke hastigheten på korrespondanseberegning med et kd-tre. Så et alternativ hvis du trenger en vanlig C-implementering, stole på Open SIFT av Rob Hess som inneholder alt du trenger, samt et brukervennlig kommandolinjeværktøy (og dermed et eksempel) som samsvarer med: K1. antall beskrivere i bilde 1, K2. antall beskrivere i bilde 2, ND. descriptor dimensjon (128 for SIFT), descr1 og descr2. beskrivere av bilde 1 og 2 resp. i rad hovedordre, for eksempel K1 linjer x ND kolonner), terskel. forholdstestgrenseverdien, f. eks. 1,5 i MATLAB-kode. Du vil bruke vlfeat biblioteket på samme måte som du bruker et annet bibliotek med C. Først må du sørge for at biblioteket er installert på datamaskinen og vet hvor det er installert. Du må inkludere den nødvendige overskriften for hver del av vlfeat du bruker. Vanligvis et generisk bibliotek header for vlfeat og deretter en bestemt header for sikt (for eksempel inkludere sift. h) (noen ganger er det ingen generell header). Du må forsikre deg om at gcc eller g-kommandoen inneholder riktig INCLUDEPATH og LIBRARYPATH for ditt miljø som vil tillate gcc å finne dine vlfeat-filer. (for eksempel - Integodirholdingsift. h og - Lpathtovlfeatlib) Så du vil ende opp med noe som dette for C: Det er dokumentasjon på linje som vil hjelpe. Se: Hvordan sette opp et grunnleggende C-prosjekt som bruker VLFeat-biblioteket Hvis du har flere spørsmål, bare slipp en linje i kommentarene. svarte 14. november kl 14:07 C-APIene er beskrevet på vlfeat. orgapisift. html. Det er bare siktbeskrivelse som genererer (ekstraherer) API der. Jeg kan ikke finne en tilsvarende tilhørende API. Og i kilden finner jeg vlubcmatch. c som gjør en quotbasisk matchende algoritmquot. Men jeg vet ikke hvordan jeg skal ringe denne algoritmen i denne. C-filen (der det er mange makrodefinisjoner som virker relatert til matlab). Mitt hovedspørsmål er hvordan å gjøre SIFT-matchningsalgoritmen hvis jeg bruker vlfeat ndash mrmoment 14. november kl 14:52 Det var hoveddelen av svaret. Du vil inkludere sift. h i koden din sammen med den andre inneholder (stdio. h, etc.). Du vil da bruke funksjonen, med de riktige argumentene som angitt i sift. h i koden din. Du vil da kompilere koden (enten gcc eller g) som spesifiserer biblioteket - lvl slik at linkeren vet å inkludere den koden, og du må kanskje ikke spesifisere - I47path andor - L47path for å få gcc og ld å finne lib og sikt. h header avhengig av ditt miljø. Ingen triks. ndash David C. Rankin 14. november kl 8: 56vlfeat-ctypes 0.1.1 En minimal ctypes-basert port av noen vlfeatfunksjoner. Dette er en minimal port av noen få komponenter i matlab-grensesnittet til vlfeat-biblioteket for datasyn til Python. vlfeats kjernebibliotek er skrevet i C. I praksis ligger imidlertid en betydelig del av biblioteket i MATLAB-grensesnittet. Dette prosjektet er en port av noen få funksjoner fra det grensesnittet til pythonnumpy, ved hjelp av ctypes. Den inneholder bare noen få funksjoner (de som trengs for py-sdm). Prosessen er ikke veldig vanskelig, det tar bare litt innsats. Patcher som legger til ekstra funksjonalitet er velkomne. Theres også en gaffel av vlfeat som flyter rundt som inkluderer Boost :: Python wrappers. Jeg kunne ikke få det til å fungere, og prøvde ikke for hardt fordi jeg så at noen av funksjonene jeg trengte hadde betydelige mengder matlab-kode uansett. Du kan være mer interessert i det, men Andreas Muellers-versjonen synes å være den nyeste oppdateringen. Installasjon Pakken kan installeres med pip eller easyinstall normalt. Men for å faktisk bruke det, må du også laste ned vlfeat binærbiblioteket. Du kan enten installere libvl. so (eller dine plattformer tilsvarende) et sted hvor ctypes kan finne det selv, eller bruk det medfølgende skriptet for å gjøre det, kjør det med python - m vlfeat. download. Hvis du legger til et - h-argument, viser det deg hvordan du gjør det med en forhåndsdownload binær distribusjon. Hvis du installerer Python-pakker med sudo. Det kan hende du må gjøre det samme for nedlastingsskriptet. Repository access VLFeat er under aktiv utvikling. Du kan bla gjennom vårt Git-depot eller laste det ned av (Dette krever at Git skal installeres). Øverst på hovedgrenen tilsvarer den nyeste versjonen av VLFeat, men det kan være ustabil. Vi ønsker velkommen bidrag til både dokumentasjonen og kildekoden til VLFeat. Du kan opprette patcher mot vårt Git-depot og sende dem til oss for inkludering i den neste versjonen. Det er to måter å bidra med. For mindre endringer, klone bare vårt offentlige lager, som forklart ovenfor. Når du har gjort og begått dine endringer lokalt, kan du sende dem til prosjektet via e-post ved hjelp av en kommando som git-format-oppdatering. For større tillegg foretrekker vi å håndtere samarbeid gjennom github. Følg veiledningen for å gaffelprosjektet vårt og send inn endringene dine ved hjelp av en trekkforespørsel.

Comments

Popular Posts