2017-04-02 44 views
0

從這裏複製並粘貼codegithub後出現以上錯誤。 你們能幫我解決嗎?我的代碼:錯誤'LoadImage類型'未被聲明。由於其保護級別,可能無法訪問

Imports Emgu.CV     'usual Emgu Cv imports 
Imports Emgu.CV.CvEnum   ' 
Imports Emgu.CV.Structure  ' 
Imports Emgu.CV.UI 
Public Class frmMain 
    Private Sub btnOpenFile_Click(sender As Object, e As EventArgs) Handles btnOpenFile.Click 

LoadImageType給了我一些建議,我試過,但沒有得到幫助。

  imgOriginal = New Mat(ofdOpenFile.FileName, LoadImageType.Color) 
     Catch ex As Exception              
     CvInvoke.GaussianBlur(imgGrayscale, imgBlurred, New Size(5, 5), 1.5) 
     CvInvoke.Canny(imgBlurred, imgCanny, 100, 200) 
     ibOriginal.Image = imgOriginal    'update image boxes 
     ibCanny.Image = imgCanny     ' 
    End Sub 
End Class 

這是錯誤: enter image description here

These are my project files

回答

0

我注意到您創建名爲LoadImageType.vb自己的類。但是,LoadImageType已經是OpenCV enum。你得到這個錯誤是因爲你可能根本沒有引用這個類,或者你沒有初始化它(參見this link)。

我建議您刪除您創建的這個自定義類並使用OpenCV enum。這個enum位於Emgu.CV.CvEnum命名空間。也許特別指定要使用CVEnum命名空間:

imgOriginal = New Mat(ofdOpenFile.FileName, CvEnum.LoadImageType.Color) 
'You can even try this 
imgOriginal = New Mat(ofdOpenFile.FileName, Emgu.CV.CvEnum.LoadImageType.Color) 

如果這不起作用,你爲什麼不試一試,看是否可以專門輸入一個整數? LoadImageType枚舉是一個整數轉換(參見docs)。所以對於顏色,你應該輸入值1。如果一切正常,你知道不順心的事,使用枚舉:

imgOriginal = New Mat(ofdOpenFile.FileName, 1) 

如果這仍然不起作用,你爲什麼不只是使用imread方法(見docs)?我總是用一個沒有LoadImageType enum,沒有問題可言:

Dim img As Mat 
img = CvInvoke.Imread(ofdOpenFile.FileName) 

或者,如果您特別想使用LoadImageType你也可以嘗試:

Dim img As Mat 
img = CvInvoke.Imread(ofdOpenFile.FileName, CvEnum.LoadImageType.Color) 
相關問題