Реализация SIFT в C # - PullRequest
       8

Реализация SIFT в C #

3 голосов
/ 28 декабря 2010

Я хочу использовать реализацию sift в C #.

Я нашел этот сайт http://user.cs.tu -berlin.de / ~ nowozin / libsift / , но я запутался, что нет главногофайл программы или проекта.Я не мог понять, как я могу использовать его в обычном консольном / оконном приложении C # и каково правило GK #.

Может кто-нибудь дать мне несколько полезных советов, или кто-нибудь знает другую реализацию в C #?

Ответы [ 4 ]

2 голосов
/ 28 декабря 2010

Основной программы нет, потому что это, безусловно, библиотека классов. Либо создайте проект, используя вашу любимую среду IDE, и добавьте в него исходные файлы, либо откройте окно терминала и соберите библиотеку, используя включенный Makefile.

1 голос
/ 17 июля 2014

Этот код очень похож на алгоритм Surf http://www.emgu.com/wiki/index.php/SURF_feature_detector_in_CSharp.

    public Image<Bgr, Byte> PutFeaturesOnImage(string file)
    {
        Image<Gray, Byte> modelImage = new Image<Gray, byte>(file);
        SIFTDetector siftCPU = new SIFTDetector();
        VectorOfKeyPoint modelKeyPoints = new VectorOfKeyPoint();
        MKeyPoint[] mKeyPoints = siftCPU.DetectKeyPoints(modelImage, null);
        modelKeyPoints.Push(mKeyPoints);
        ImageFeature<float>[] reulst = siftCPU.ComputeDescriptors(modelImage, null, mKeyPoints);
        Image<Bgr, Byte> image = Features2DToolbox.DrawKeypoints(modelImage, modelKeyPoints, new Bgr(Color.Red), Features2DToolbox.KeypointDrawType.DEFAULT);
        return image;
    }

Не забудьте добавить библиотеки:

using Emgu.CV;
using Emgu.CV.Features2D;
using Emgu.CV.Util;
using Emgu.CV.Structure;
using System.Drawing;

Я сравнил алгоритмы EmguCv и OpenCV SIFT. Результаты одинаковы. В обоих примерах одинаковое количество функций.

1 голос
/ 28 декабря 2010

https://sites.google.com/site/btabibian/projects/3d-reconstruction/code

Здесь вы можете найти одну реализацию с классом Sift. Он основан на библиотеке EmguCV. Sift_features (имя очень противоречит соглашениям C #) возвращает вам список объектов Feature, который имеет двойной элемент дескриптора [].

0 голосов
/ 30 декабря 2010

Соглашение об именах соответствует исходному коду C, опубликованному UBC, поскольку это был всего лишь тест, чтобы увидеть, как работает алгоритм.Я буду рад помочь, если понадобится.

...