我正在开发使用emgucv估算人体高度的程序。我使用全身检测来检测人体。我使用检测到的矩形框的高度作为估计高度的参考。
我的程序编写如下。我用vb作为我的编程语言
imgcolor = ImgCap.QueryFrame.Flip(Emgu.CV.CvEnum.FLIP.HORIZONTAL)
imggray = imgcolor.Convert(Of Gray, Byte)()
If TextBox1.Text = "Human Detected" Then
TextBox2.Text = Height
Else
TextBox2.Text = 0
End If
TextBox1.Text = "Human Detected"
For Each body As MCvAvgComp In imggray.DetectHaarCascade( _
objecttodetect, _
1.2, _
1, _
CvEnum.HAAR_DETECTION_TYPE.FIND_BIGGEST_OBJECT, _
New Size(50, 50))(0)
imgcolor.Draw(body.rect, New Bgr(Color.Blue), 3)
Height = body.rect.Height
我的问题是
1)当我调试全身检测不准确时。我该怎么做才能使检测结果准确?
2)我的图像框的当前大小为640,480。我希望将宽度减小到320,但是当我这样做时,图像框中的视图和我的相机一样(即使我覆盖了相机镜头的一半,也不会影响图像框中的图像。) / p>
提前回答你的答案。抱歉我的英语很差。
答案 0 :(得分:0)
对于问题1我没有一个好的答案,但我可以回答问题2:
您需要查看SetZoomScale
的{{1}}方法。我写了这个方法,如果图像太大,自动缩放ImageBox。它在C#中,但您应该可以将其转换为VB。
ImageBox