2012-07-10 3 views
7

C#의 열린 CV 웹캠 기능을 통합하기 위해 Emgu 라이브러리를 사용하고 있습니다. 그런 다음C#, Emgu webcam - 캡처 크기 선택

camera = new Capture(0); 
camera.SetCaptureProperty(CAP_PROP.CV_CAP_PROP_FRAME_WIDTH, videoSettings.width); 
camera.SetCaptureProperty(CAP_PROP.CV_CAP_PROP_FRAME_HEIGHT, videoSettings.height); 

나는이 같은 imageBox에 표시 : imageBox1.Image = camera.QueryFrame(); 다음

는 현재 프레임 I의 스냅 샷을 캡처 할 수

나는 그 크기를 캡처 장치를 선택하고 설정이 코드를 사용 내가 미리보기 창보다 더 높은 해상도로 스냅 샷을 저장 할 수 있도록하려는 것입니다하지만

Image<Bgr, byte> snapshot = camera.QueryFrame(); 
snapshot.Save("snapshot.jpg"); 

:이 코드를 사용합니다.

그러나 문제는 동일한 웹 카메라를 사용하여 새로운 "캡처"개체를 만들 수 없다는 것입니다. 그래서 어쩌면 camera.setCaptureProperty 높이 및 너비 1028x720 말할 수 있도록 설정할 수 있습니다 궁금 하군요하지만 다음 518x360 해상도로 imageBox에 표시하기 위해 자르기 위해 어떤 식으로 자르기를할까요?

또는 다른 방법이 있습니까?

+0

를 사용하여이를 해결, 그것은'Emgu.CV.CvEnum'에 있습니다. – Chad

답변

9

제가 사용하여이를 해결

imageBox1.SizeMode = PictureBoxSizeMode.StretchImage; 
2

I은 ​​리사이즈() QueryFrame에 방법() 여기서 'CAP_PROP`가 정의 궁금 분들

currentFrame = grabber.QueryFrame().Resize(320, 240, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC); 
+2

이것은 작동하지만 여전히 이미지의 일부를 잘라내는 것처럼 보입니다. 대신 imageBox.SizeMode를 사용하십시오. –