Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SIFT在C语言中的实现#_C#_Image Processing_Sift - Fatal编程技术网

C# SIFT在C语言中的实现#

C# SIFT在C语言中的实现#,c#,image-processing,sift,C#,Image Processing,Sift,我想在C#中使用sift实现 我找到了这个网站 但我感到困惑的是,没有主程序或项目文件。我不明白如何在普通的C#控制台/窗口应用程序中使用它,以及GK的规则是什么 有人能给我一些有用的提示吗,或者有人知道C#中的另一个实现吗? 您可以在这里找到一个具有Sift类的实现。它基于EmguCV库。 sift#U features(名称与C#约定非常不符)返回一个Feature对象列表,其中包含双[]描述符成员。没有主程序,因为它显然是一个类库。使用您喜爱的IDE创建一个项目并将源文件添加到其中,或者打

我想在C#中使用sift实现

我找到了这个网站 但我感到困惑的是,没有主程序或项目文件。我不明白如何在普通的C#控制台/窗口应用程序中使用它,以及GK的规则是什么

有人能给我一些有用的提示吗,或者有人知道C#中的另一个实现吗?

您可以在这里找到一个具有Sift类的实现。它基于EmguCV库。
sift#U features(名称与C#约定非常不符)返回一个Feature对象列表,其中包含双[]描述符成员。

没有主程序,因为它显然是一个类库。使用您喜爱的IDE创建一个项目并将源文件添加到其中,或者打开一个终端窗口并使用包含的Makefile构建库。

命名约定遵循UBC发布的原始C代码,因为这只是一个测试,以查看算法如何执行。如果您需要帮助,我将很乐意提供帮助。

此代码与Surf算法非常相似


我比较了EmguCv和OpenCV SIFT算法。结果是一样的。在这两个示例中,功能的数量完全相同。

我尝试了Tabibian先生实现的代码,但出现了一个错误,即:名称空间“Emgu.CV.CvEnum”中不存在类型或名称空间名称“INVERT_METHOD”。我检查了cvEnum,但似乎Invet_方法已被删除或不再受支持。还有其他命令我可以代替吗?[第660行:sift.cs:CvInvoke.cvInvert(H,H_inv.Ptr,Emgu.CV.CvEnum.INVERT_METHOD.CV_SVD);]我尝试了由Tabibian先生实现的代码,但我得到一个错误:类型或名称空间名称“INVERT_METHOD”在名称空间“Emgu.CV.CvEnum”中不存在。我检查了cvEnum,但似乎Invet_方法已被删除或不再受支持。还有其他命令我可以代替吗?[第660行:sift.cs:CvInvoke.cvInvert(H,H_inv.Ptr,Emgu.CV.CvEnum.INVERT_METHOD.CV_SVD);]遗憾的是,现在链接已经死了代码似乎在这里:
    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;