Home Upgrade Search Memberlist Extras Hacker Tools Award Goals Help Wiki Contact

.NET 

Circle Detection using EMGU Invoke error

Hello I am using EMGU to detect circles within an image and i'm receiving the error "EMGU.Invoke" I know this has to do with it being a 64bit system but I've tried re referencing the new version but nothing fixes it.
Error:
Dim img As Emgu.CV.Image(Of Emgu.CV.Structure.Bgr, Byte) = New Emgu.CV.Image(Of Emgu.CV.Structure.Bgr, Byte)

Code
Imports Emgu.CV.UI
Imports Emgu.CV
Imports Emgu.CV.Structure
Imports System
Imports System.ComponentModel
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Collections.Generic

Public Class ShapeDetection
  
    Private Sub loadImageButton_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles loadImageButton.Click
        Select Case Me.openFileDialog1.ShowDialog
            Case DialogResult.OK, DialogResult.Yes
                Me.fileNameTextBox.Text = Me.openFileDialog1.FileName
                Exit Select
        End Select
    End Sub

    Public Sub PerformShapeDetection()
        If (Me.fileNameTextBox.Text <> String.Empty) Then
            ' Load the image from file and resize it for display
            Dim img As Emgu.CV.Image(Of Emgu.CV.Structure.Bgr, Byte) = New Emgu.CV.Image(Of Emgu.CV.Structure.Bgr, Byte)(fileNameTextBox.Text).Resize(400, 400, Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR, True)
            ' Convert the image to grayscale and filter out the noise
            Dim gray As Emgu.CV.Image(Of Emgu.CV.Structure.Gray, Byte) = img.Convert(Of Gray, Byte).PyrDown.PyrUp()

            Dim cannyThreshold As New Gray(180)
            Dim cannyThresholdLinking As New Gray(120)
            Dim circleAccumulatorThreshold As New Gray(500)
            Dim circles As CircleF() = gray.HoughCircles(cannyThreshold, circleAccumulatorThreshold, 4.0, 15.0, 5, 0)(0) 'Get the circles from the first channel
            Dim cannyEdges As Image(Of Gray, Byte) = gray.Canny(cannyThreshold, cannyThresholdLinking)
            Dim lines As LineSegment2D() = cannyEdges.HoughLinesBinary(1, Math.PI / 45.0, 20, 30, 10)(0)

            Dim triangleList As New List(Of Triangle2DF)()
            Dim boxList As New List(Of MCvBox2D)() 'a box is a rotated rectangle

            Using storage As New MemStorage()
                'allocate storage for contour approximation
                Dim contours As Contour(Of Point) = cannyEdges.FindContours(Emgu.CV.CvEnum.CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_SIMPLE, Emgu.CV.CvEnum.RETR_TYPE.CV_RETR_LIST, storage)
                While contours IsNot Nothing
                    Dim currentContour As Contour(Of Point) = contours.ApproxPoly(contours.Perimeter * 0.05, storage)

                    If currentContour.Area > 250 Then
                        'only consider contours with area greater than 250
                        If currentContour.Total = 3 Then
                            'The contour has 3 vertices, it is a triangle
                            Dim pts As Point() = currentContour.ToArray()
                            triangleList.Add(New Triangle2DF(pts(0), pts(1), pts(2)))
                        ElseIf currentContour.Total = 4 Then
                            'The contour has 4 vertices.
                            ' "determine if all the angles in the contour are within [80, 100] degree"
                            Dim isRectangle As Boolean = True
                            Dim pts As Point() = currentContour.ToArray()
                            Dim edges As LineSegment2D() = PointCollection.PolyLine(pts, True)

                            For i As Integer = 0 To edges.Length - 1
                                Dim angle As Double = Math.Abs(edges((i + 1) Mod edges.Length).GetExteriorAngleDegree(edges(i)))
                                If angle < 80 OrElse angle > 100 Then
                                    isRectangle = False
                                    Exit For
                                End If
                            Next


                            If isRectangle Then
                                boxList.Add(currentContour.GetMinAreaRect())
                            End If
                        End If
                    End If
                    contours = contours.HNext
                End While
            End Using

            originalImageBox.Image = img
            Dim triangleRectangleImage As Image(Of Bgr, Byte) = img.CopyBlank
            Dim triangle As Triangle2DF
            For Each triangle In triangleList
                triangleRectangleImage.Draw(triangle, New Bgr(Color.DarkBlue), 2)
            Next
            Dim box As MCvBox2D
            For Each box In boxList
                triangleRectangleImage.Draw(box, New Bgr(Color.DarkOrange), 2)
            Next
            triangleRectangleImageBox.Image = triangleRectangleImage
            Dim circleImage As Image(Of Bgr, Byte) = img.CopyBlank
            Dim circle As CircleF
            For Each circle In circles
                circleImage.Draw(circle, New Bgr(Color.Brown), 2)
            Next
            circleImageBox.Image = circleImage
            Dim lineImage As Image(Of Bgr, Byte) = img.CopyBlank
            Dim line As LineSegment2D
            For Each line In lines
                lineImage.Draw(line, New Bgr(Color.Green), 2)
            Next
            lineImageBox.Image = lineImage

        End If
    End Sub


    Private Sub fileNameTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles fileNameTextBox.TextChanged
        Me.PerformShapeDetection()
    End Sub


End Class
This is most likely caused by not following the installation tutorial on the EmguCV page. Are you sure that you have the opencv libraries in the corresponding directories and that you are referencing the correct dll's? Are you copying the dll files to the output directory?
I followed the tutorial perfectly from what I see have the OpenCV dlls in output directory but still says unable to load opencv_core240


Possibly Related Threads...
Thread / Author Replies Views Last Post
[Java] by CupOfJavaJan 31, 2019 04:52 PM 6 276 Jan 31, 2019 04:52 PM
Last Post: Khamul
[.NET] by InfirmaryJun 24, 2018 06:40 PM 1 141 Jun 24, 2018 06:40 PM
Last Post: gigajew
[Java] by GoodVibesApr 7, 2018 04:01 PM 3 200 Apr 7, 2018 04:01 PM
Last Post: GenericSkid