//구글광고

opencv 에서 웹캠을 열어서 frame을 read 해보면 해상도가 640*480 으로만 나오는 문제가 발생했다.

 

웹캠 스팩에는 full - hd 지원이라 이상하게 여겨서 자료를 찾아보니 다음과 같은 방법으로 해결할 수 있었다.

 

1. frame을 처음 한번 read 한다.

 capture.Read(frame);

 

2. 처음 read 한 프래임에서 해상도값을 구해본다.

 if (!frame.Empty())
                {
                    

                    capture.Read(frame);

                    cameraCount = cameraCount + 1;
                    textBox2.Text = textBox2.Text + "\n카메라(" + i + ") 발견됨 (" + capture.FrameWidth+ "*" + capture.FrameHeight + ")";
                    
                }
                else
                {
                    textBox2.Text = textBox2.Text + "\n카메라(" + i + ") 발견실패";
                }

frame이 정상적으로 읽혀졌는지(empty 가 아닌지 ) 판단한 후,

해상도를 구해보자

 

1번 카메라는 720p 이고 2번 카메라는 full-hd 지원이라고 스팩에 적혀있었으나 640*480 해상도만 나오는 문제가 발견된다.

 

3. 프레임을 읽고 난 후, 해상도를 강제로 5000*5000으로 큰값을 지정해준다.

if (!frame.Empty())
                {
                    capture.FrameWidth = 5000;
                    capture.FrameHeight = 5000;

                    capture.Read(frame);

                    cameraCount = cameraCount + 1;
                    textBox2.Text = textBox2.Text + "\n카메라(" + i + ") 발견됨 (" + capture.FrameWidth+ "*" + capture.FrameHeight + ")";
                    
                }
                else
                {
                    textBox2.Text = textBox2.Text + "\n카메라(" + i + ") 발견실패";
                }

해상도를 강제로 엄청 높게 지정해준 뒤에, 카메라의 값을 다시 read 해주자.

 

이제 카메라가 지원하는 최대 해상도 값을 찾을 수 있다.

 

ps. 로지텍 full -hd 웹캠은 스팩오버로 3k 해상도를 max 로 출력하였다.

'openCV' 카테고리의 다른 글

openCV 4 를 닷넷(C#) 에서 사용하기  (0) 2019.05.14

+ Recent posts