我得到上述错误后复制和粘贴一些code
从这里,github。你们能帮我修一下吗?我的代码:
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
这就是错误:
2条答案
按热度按时间3gtaxfhh1#
我注意到你创建了自己的类
LoadImageType.vb
。但是,LoadImageType
已经是OpenCVenum
。你得到这个错误,因为你可能根本没有引用这个类,或者你没有初始化它(参见this link)。我建议你删除你创建的这个自定义类,并使用OpenCV
enum
。这个enum
位于Emgu.CV.CvEnum
命名空间中。也许可以明确指定您想要使用CVEnum
命名空间:如果这不起作用,为什么不试试看是否可以具体输入一个整数呢?
LoadImageType
枚举只是转换为整数(参见docs)。因此,对于颜色,您应该输入值1
。如果这起作用了,你就知道使用枚举时出了问题:如果这仍然不起作用,为什么不直接使用
imread
方法(参见docs)?我总是使用一个没有LoadImageType enum
和没有任何问题:或者如果你特别想使用
LoadImageType
,你也可以尝试:pcww981p2#
六年后,但可以帮助别人。只需将LoadImageType.Color替换为:CType(1,ImreadModes)正如@Jurjen所说,它只是一个整数,但来自ImreadModes枚举。