0

こんにちは私はApplicationの数を数えるためにを書いてfacesimagesます。私はHaar_caash_code顔を数えるためにxmlを使用しています。

C#コード:

   private void btnStart_Click(object sender, EventArgs e)
    {
        OpenFileDialog opndlg = new OpenFileDialog();

        if (opndlg.ShowDialog().Equals(DialogResult.OK))
        {
            try
            {
                Image img = Image.FromFile(opndlg.FileName);
                Image<Bgr, byte> BgrImg = new Image<Bgr, byte>(new Bitmap(img));
                GrayImage = BgrImg.Convert<Gray, byte>();
                var faces = GrayImage.DetectHaarCascade(haar, 1, 4, HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(25, 25))[0]; //here Exception
                MessageBox.Show(faces.Length.ToString());
            }
            catch (Exception ex)
            {

            }
        }

および含まれるdll:

 cudart64_32_16.dll
 cufft64_32_16.dll
 cvextern.dll
 npp64_32_16.dll
 opencv_calib3d220.dll
 opencv_contrib220.dll
 opencv_core220.dll
 opencv_features2d220.dll
 opencv_flann220.dll
 opencv_gpu220.dll
 opencv_highgui220.dll
 opencv_imgproc220.dll
 opencv_legacy220.dll
 opencv_ml220.dll
 opencv_objdetect220.dll
 opencv_video220.dll

プログラムを実行すると、次のエラーが発生します。

 `OpenCV: scale factor must be > 1...` 

同じ問題を解決する方法を手伝ってください。

4

1 に答える 1

1

の2番目のパラメーターscale factorDetectHaarCascade、厳密に1より大きくする必要があります。
これを確認するには、1.1に設定して、プログラムがエラーなしで動作するかどうかを確認してください。

var faces = GrayImage.DetectHaarCascade(haar, 1.1, // change this value
     4, HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(25, 25))[0];

詳細については、この投稿をお読みください。

于 2013-01-09T05:55:21.153 に答える