- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我真的很难过这一点,任何帮助将不胜感激。我正在尝试翻译以下内容:
https://github.com/MicrocontrollersAndMore/OpenCV_KNN_Character_Recognition_Machine_Learning/blob/master/generate_data.cpp
它是用 C++ OpenCV 编写的,到 Emgu CV,最好使用 VB,但 C# 也可以。我目前正在使用 Emgu CV 2.4.10(推迟到 >= 3.X 直到 Emgu 3.X 通过发布候选阶段)。
我遇到麻烦的地方是接近尾声,必须将训练图像添加到 OpenCV 矩阵中,然后才能将该矩阵传递给 KNN 调用进行训练。这是我到目前为止在按钮单击事件中打开带有培训编号的文件的内容:
Dim imgTrainingNumbers As Image(Of Bgr, Byte)
imgTrainingNumbers = New Image(Of Bgr, Byte)(ofdOpenFile.FileName) 'open image
'some error checking for verifying the image opened omitted here, its in the actual program
Dim imgGrayscale As Image(Of Gray, Byte)
Dim imgBlurred As Image(Of Gray, Byte)
Dim imgThresh As Image(Of Gray, Byte) = Nothing
Dim imgThreshCopy As Image(Of Gray, Byte)
Dim imgContours As Image(Of Gray, Byte)
Dim contours As Contour(Of Point)
Dim mtxClassificationInts As Matrix(Of Single) = New Matrix(Of Single)(NUMBER_OF_TRAINING_SAMPLES, 1)
Dim mtxTrainingImages As Matrix(Of Single) = New Matrix(Of Single)(RESIZED_IMAGE_WIDTH * RESIZED_IMAGE_HEIGHT * NUMBER_OF_TRAINING_SAMPLES, 1)
Dim intValidChars As New List(Of Integer)(New Integer() { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 })
imgGrayscale = imgTrainingNumbers.Convert(Of Gray, Byte)() 'convert to grayscale
imgBlurred = imgGrayscale.SmoothGaussian(5)
CvInvoke.cvShowImage("imgBlurred", imgBlurred)
imgThresh = imgBlurred.ThresholdAdaptive(New Gray(255), ADAPTIVE_THRESHOLD_TYPE.CV_ADAPTIVE_THRESH_GAUSSIAN_C, THRESH.CV_THRESH_BINARY_INV, 11, New Gray(2))
imgThreshCopy = imgThresh.Clone()
contours = imgThreshCopy.FindContours(CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_SIMPLE, RETR_TYPE.CV_RETR_EXTERNAL)
imgContours = New Image(Of Gray, Byte)(imgThresh.Size())
CvInvoke.cvDrawContours(imgContours, contours, New MCvScalar(255), New MCvScalar(255), 100, 1, LINE_TYPE.CV_AA, New Point(0, 0))
CvInvoke.cvShowImage("imgThresh", imgThresh)
CvInvoke.cvShowImage("imgContours", imgContours)
While(Not contours Is Nothing)
If (contours.Area > MIN_CONTOUR_AREA) Then
Dim rect As Rectangle = contours.BoundingRectangle() 'get the bounding rect
imgTrainingNumbers.Draw(rect, New Bgr(Color.Red), 2) 'draw red rect around the current char
Dim imgROI As Image(Of Gray, Byte) = imgThresh.Copy(rect)
Dim imgROIResized As Image(Of Gray, Byte) = imgROI.Resize(RESIZED_IMAGE_WIDTH, RESIZED_IMAGE_HEIGHT, INTER.CV_INTER_LINEAR)
CvInvoke.cvShowImage("imgROI", imgROI)
CvInvoke.cvShowImage("imgROIResized", imgROIResized)
CvInvoke.cvShowImage("imgTrainingNumbers", imgTrainingNumbers)
Dim intChar As Integer = CvInvoke.cvWaitKey(0)
If (intChar = 27) Then
'add code to exit program here if Esc is pressed
ElseIf (intValidChars.Contains(intChar)) Then
mtxClassificationInts.Add(intChar) 'append classification char to matrix of integers (we will convert later before writing to file)
'now add the training image (some conversion is necessary first) . . .
Dim mtxTemp As Matrix(Of Single) = New Matrix(Of Single)(imgROIResized.Size())
Dim mtxTempReshaped As Matrix(Of Single) = New Matrix(Of Single)(imgROIResized.Size())
CvInvoke.cvConvert(imgROIResized, mtxTemp)
mtxTempReshaped = mtxTemp.Reshape(1, 1)
Try
mtxTrainingImages.Add(mtxTempReshaped)
Catch ex As Exception
txtInfo.Text = txtInfo.Text + ex.Message + vbCrLf
End Try
End If
End If
contours = contours.HNext
End While
Me.Text = "training complete !!"
'write mtxClassificationInts to file here
'write mtxTrainingImages to file here
'separate write and read into two separate programs when all this is working
'read mtxClassificationInts to file
'read mtxTrainingImages to file
Dim kNearest As KNearest = New KNearest() 'instantiate KNN object
kNearest.Train(mtxTrainingImages, mtxClassificationInts, Nothing, False, 1,False) 'call to train
'rest of program here when training is successful
mtxTrainingImages.Add(mtxTempReshaped)
OpenCV: The operation is neither 'array op array' (where arrays have the same size and the same number of channels), nor 'array op scalar', nor 'scalar op array'
最佳答案
我相信错误消息告诉您 mtxTrainingImages 和 mtxTempReshape 是不同的大小和/或具有不同数量的 channel 。如果这两个创建相同,您将不会遇到此问题。
关于vb.net - Emgu CV,无法将图像添加到矩阵以进行 KNN 训练,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31041266/
我使用的是 Emgu 2(使用 opencv 2.4.10.1 的那个),它运行非常稳定,不会崩溃。我现在已经升级到 Emgu 3.1.0.1,我的应用程序有时会在几小时或一天内崩溃并出现 Acces
您好,我想做的是将 Emgu.CV.Mat 分配给 Emgu.CV.UI.ImageBox 但我一直收到 CvInvokeCore.cs 文件中的 System.AccessViolationExce
我在 C# 中使用 EmguCV,当我想从网络摄像头抓取帧时遇到问题,语句中出现红色下划线: imgOrg = capturecam.QueryFrame(); error: Cannot impli
我能够将 emgu 图像格式转换为字节字符串,这确实可以使用此代码保存在 MySQL 数据库上,但图像以 Windows 图像查看器无法识别的格式保存 string myCon
我有点碰壁我可能只是对如何在 .net(c# express 2010)中设置项目缺乏一些基本的了解,但我似乎无法让这个程序工作 基本上,我正在尝试设置一个简单的程序,该程序将获取网络摄像头馈送并检查
我正在使用 EmguCV 3.1 开发人脸识别应用程序。我正在使用 EigenFaceRecognizer 作为识别算法。我尝试使用以下代码训练图像。 List> trainingImages
我正在开发一个使用 OpenCV 库的项目,它使用 Emgu.CV.Image 作为从相机捕获的图像。 我正在尝试将代码移动到 Microsoft Azure 辅助角色中以处理云中的图像处理。 我当前
我从以下位置下载 sift 实现:https://sites.google.com/site/btabibian/projects/3d-reconstruction/code但我收到错误消息:命名空
我正在尝试使用EmguCV检测字符标记,并且已经从OpenCV网站复制并重写了example。 我的代码如下所示: Mat cameraMatrix = new Mat(new Size(3, 3),
我正在使用 Emgu CV 库用 Visual Basic 语言编写一些代码。 我需要知道如何使用函数 AdaptiveThreshold Dim inputImage As Emgu.CV.Inpu
我仍在学习 Emgu CV,我需要从包含 PNG32 数据的字节数组中加载图像。我正在按如下方式加载图像(这是工作示例): FileStream fs; Bitmap bitmap; Image im
我正在做一个项目,需要从表面的红外激光中识别点。我用的是带红外滤镜的相机 一些输入图像: 也可以有几个点。因此,我尝试从网络摄像头中锐化此图像,然后使用Emgu CV的FindContours方法。
我正在使用 emgu/opencv 来查找一些扁平 Blob 的位置。我目前可以以像素为单位找到它们的位置,并希望将其转换为世界坐标(in/mm)。我看过 emgu 的相机校准 example ,但我
我正在使用 Emgu 在 Visual Studio 上使用 C#。 我正在对一张大图像进行一些图像处理。我想到了将图像分成两半,并行进行操作,然后合并图像。 为了实现这一目标,我发现了一些关于获取图
我无法使用 Emgu CV 播放视频 显示错误 Unable to create capture from 184.avi 代码如下: public partial class Form1 : For
我正在从事一个实验项目,其中的挑战是识别和提取用户点击/触摸的图标或控件的图像。我正在尝试的方法如下(我需要一些帮助来完成第 3 步): 1) 当用户点击/触摸屏幕时截屏: 2) 应用边缘检测: 3)
我发现了一个类似的问题:creating histogram using emgu cv c# 当我传递灰度图像时效果很好,但是当我使用 Matrix 时,程序会抛出异常。我的代码: Matrix m
有人可以指导我介绍各向异性扩散的一些现有实现方式,最好是 perona-malik扩散吗? 最佳答案 翻译以下MATLAB代码: % pm2.m - Anisotropic Diffusion rou
我在项目中使用emgu。 我得到这个异常(exception): 这里是异常的细节: opencv_core242在文件夹项目中,并且平台目标设置为x86。 任何想法可能导致异常的原因以及如何解决?
今天是个好日子, 我正在尝试为视频构建实时帧插值程序。 因为我一直使用C#,所以我选择将OpenCV与Emgu 3.2.0(可用的最新版本)一起使用。 就是这样: 首先,我有2张分别名为frame1和
我是一名优秀的程序员,十分优秀!