快拍

2013-01-13 40 views
1

我已經使用這個代碼檢測眼睛:快拍

MCvAvgComp[][] eyes = gray1.DetectHaarCascade(eye, 1.1, 1, 
     Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(20, 20)); 
gray1.ROI = Rectangle.Empty; 
foreach (MCvAvgComp eyesnap in eyes[0]) 
{ 
    Rectangle eyeRect = eyesnap.rect; 
    eyeRect.Offset(f.rect.X, f.rect.Y); 
    nextFrame.Draw(eyeRect, new Bgr(Color.Green), 2); 
} 

我想利用雙眼的快照不同的PictureBox。任何人都可以幫助我理解如何拍攝個人眼睛的快照嗎?

回答

1

您可以使用GetSubRect函數來獲得子圖像:

IImage eyeImg = nextFrame.GetSubRect(eyeRect); 

或者

Bitmap eyeBmp = nextFrame.GetSubRect(eyeRect).Bitmap; 

編輯

負載HaarCascade左眼:

HaarCascade leftEye = new HaarCascade("leftEye.xml"); 

MCvAvgComp[][] foundLeftEyes = gray1.DetectHaarCascade(leftEye, 1.1, 1, 
     Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(20, 20)); 
gray1.ROI = Rectangle.Empty; 
foreach (MCvAvgComp eyesnap in foundLeftEyes[0]) 
{ 
    Rectangle eyeRect = eyesnap.rect; 
    eyeRect.Offset(f.rect.X, f.rect.Y); 
    nextFrame.Draw(eyeRect, new Bgr(Color.Green), 2); 
} 

同樣會爲右眼......

舉個例子,你可以使用:

Left eye HaarCascadeRight eye HaarCascade

+0

okkk。 thnx爲此。但是從那個角度來看,它怎樣才能決定拍攝哪張眼睛照片。我嘗試了這一點,但它需要左眼快拍。爲了讓右眼看到寫什麼代碼? plz help – vidhi

+0

在你的情況下,眼睛是從文件加載的HaarCascade對象。第二隻眼睛需要另一個HaarCascade對象。 –

+0

例如,有雙眼資源:https://github.com/nzaillian/Qt-OpenCV-Integration-Demo/tree/master/resources –