用emgucv检测和估计人体高度

时间:2013-03-25 11:44:54

标签: vb.net emgucv

我正在开发使用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>

提前回答你的答案。抱歉我的英语很差。

1 个答案:

答案 0 :(得分:0)

对于问题1我没有一个好的答案,但我可以回答问题2:

您需要查看SetZoomScale的{​​{1}}方法。我写了这个方法,如果图像太大,自动缩放ImageBox。它在C#中,但您应该可以将其转换为VB。

ImageBox