2012-02-29 2 views
0

나는 얼굴 탐지 및 인식 소프트웨어를 연구 중이다 ... 나는 얼굴을 탐지하고 EigenObjectRecognizer를 사용하여 그들을 인식하는데 성공했다. 그러나 때로는 그것의 잘못된 결과를 준다 ... 그래서 HaarCascade 객체를 사용하여 얼굴의 명암을 설정한다. 타원에 배경 효과를 무효로 할 수 있도록 ...이미지 ROI를 EMGU CV ...의 다른 사각형 모양으로 설정 하시겠습니까?

ellipse = new Ellipse (새로운 PointF (face.rect.X + (face.rect.Width/2), face.rect .Y + (face.rect.Height/2)), 새 SizeF (face.rect.Width - 5, face.rect.Height - 25), 0); ImageFrame.Draw (타원, 새 Bgr (Color.Green), 2); '

이 저를 도와주세요

이제

는 얼굴 주위 타원을 그릴 수 ...하지만 방법이 타원 얼굴의 투자 수익 (ROI)을 설정하는 ... ...

답변

1

미안하지만 당신은 할 수 실제로 이미지의 ROI를 타원으로 설정하면 매우 복잡하고 느리게 수행됩니다.

글쎄 그것은 천천히 구문 분석하지만 이미지 데이터에 액세스 할 때마다 올바른 위치와 조건을 찾기 위해 몇 가지 for 루프를 통해 강제로 이탈하여 이탈하지 않도록해야합니다. 성능에 대한 해로운 영향은 구현되지 않았 음을 의미합니다. 원한다면 언제든지 소스를 편집하고 설정할 수 있습니다.

또는 ROI의 빈 이미지를 만들고 타원 안에 들어있는 얼굴의 데이터를 두 개의 for 루프를 사용하여 바이트 단위로 복사하는 것이 가장 좋습니다. 조건부 복사본을 사용하여 피부색 텍스처 만 복사 할 수도 있습니다.

이 문제에 대한 도움이 필요한 경우 알려주십시오. 하지만 결국에는 검은 색 배경의 얼굴 이미지로 끝날 것입니다. 이제 모든 얼굴이 검은 색 배경이되므로 효과를 없앨 수 있습니다.

Image<Gray, byte> mask = new Image<Gray, byte>(img.Width, img.Height); 
: 당신은 마스크와 비트 그리고
를 사용하여 할 수
1

가 IMG 가정

이 도움이

희망,

건배,

크리스 만들기 이미지 마스크
입니다

너 모양있는 도형 불러 내기 개미, 예를 들어 타원에 대한

CvInvoke.Ellipse(mask,new Point(5,5),new Size(10,20),0,0,360, new MCvScalar(255,255,255),-1,Emgu.CV.CvEnum.LineType.AntiAlias, 0); // -1 fill ellipse 

목적지 :

Image<Gray, byte> dest = new Image<Gray, byte>(img.Width, img.Height); 

비트 AND

dest = img.And(img, mask); 
dest.Save("C:/myshape.jpg") 
관련 문제