VB.net中等高线分析的代码错误

VB.net中等高线分析的代码错误,vb.net,emgucv,Vb.net,Emgucv,我正在尝试在vb.net中使用emgu.cv lib作为轮廓函数。问题是我的var没有定义。这应该在lib emgu.cv下,我已经导入了它 Dim borderPen As New Pen(Color.FromArgb(150, 0, 255, 0)) Dim processor As ImageProcessor Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Dim borderPen As

我正在尝试在vb.net中使用emgu.cv lib作为轮廓函数。问题是我的var没有定义。这应该在lib emgu.cv下,我已经导入了它

Dim borderPen As New Pen(Color.FromArgb(150, 0, 255, 0))
Dim processor As ImageProcessor

Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs)
    Dim borderPen As New Pen(Color.FromArgb(150, 0, 255, 0))

    If RadioButton1.Checked = True Then
        For Each contour As var In processor.contours
            If contour.Total > 1 Then
                e.Graphics.DrawLines(Pens.Red, contour.ToArray())
            End If
        Next
    End If

    SyncLock processor.foundTemplates
        For Each found As FoundTemplateDesc In processor.foundTemplates
            If found.template.name.EndsWith(".png") OrElse    found.template.name.EndsWith(".jpg") Then
                DrawAugmentedReality(found, e.Graphics)
                Continue For
            End If
        Next
    End SyncLock
End Sub

Private Sub DrawAugmentedReality(found As FoundTemplateDesc, gr As Graphics)
    Dim fileName As String = "C:\Users\pnasguna\Desktop\A56.jpg"
    Dim AugmentedRealityImages As New Dictionary(Of String, Image)()
    Dim img As Image = AugmentedRealityImages(fileName)
    Dim p As Point = found.sample.contour.SourceBoundingRect.Center()
    Dim state = gr.Save()
    gr.TranslateTransform(p.X, p.Y)
    gr.RotateTransform(CSng(180.0F * found.angle / Math.PI))
    gr.ScaleTransform(CSng(found.scale), CSng(found.scale))
    gr.DrawImage(img, New Point(-img.Width / 2, -img.Height / 2))
    gr.Restore(state)
End Sub
我无法编译,因为未定义var。如何解决此问题?

由于未定义类型
var
,因此出现错误。您可以通过执行以下步骤之一修复此问题:

  • 作为变量删除

处理器中每个轮廓的
。轮廓
  • 用正确的数据类型替换var

处理器中的每个轮廓的


Emgu

查看for
emgu
(用C#编写),
ImageProcessor.cs
文件将显示
等高线的数据类型

公开列表;
翻译成vb.net:

公共等高线列表(等高线(点))
解决方案

因此,有了这些信息,就很容易选择正确的数据类型

将每个轮廓作为Me.processor.contours中的轮廓(点的轮廓)

注意:您应该总是在上设置为

很抱歉,我没有运行此功能的
dll
,如果您参考下载
dll的链接,我将检查代码。我从复制dll的源代码文件中使用了此链接。var应该是Emgu.CV.contourt类中的成员,其中t:struct t是System.Drawing.Point,但在我的编码,它没有定义到这个类中。我该怎么修呢。因为我已经导入了Emgu.CV库。你知道如何在Emgu.CV.Contourwhere T:struct T.@Saranya库下定义var吗?你自己写过这段代码吗?还是翻译过的C代码?看来你的消息来源是。读:是的,我把它从C#翻译过来。我没有通过vb.net使用emgu.cv库的知识。我的来源是从你的方法删除不起作用。我已经阅读了链接。问题是我的var没有声明为string或integer。var的定义应显示emgu.cv lib。希望你能得到这个。在过去的几个星期里,我一直被这个错误所困扰。