programing

OpenCV의 cvWaitKey() 함수는 무엇을 합니까?

copyandpastes 2022. 7. 30. 21:47
반응형

OpenCV의 cvWaitKey() 함수는 무엇을 합니까?

의 실행 중에 일어나는 일cvWaitKey()일반적인 사용 사례는 무엇입니까?OpenCV 레퍼런스에서 봤는데 정확한 용도가 불분명해요.

cvWaitKey(x) / cv::waitKey(x)는 다음 두 가지 작업을 수행합니다.

  1. OpenCV 창에서 키를 누를 때까지 x밀리초 동안 대기합니다(즉, 에서 생성됨).cv::imshow())는 stdin에서 콘솔 입력을 리슨하지 않는 것에 주의해 주세요.그 사이에 키를 눌렀을 경우는, 키의 ASCII 코드를 반환합니다.그렇지 않으면 반환됩니다.-1(x가 0일 경우 키를 누를 때까지 무기한 대기합니다.)
  2. 창 생성과 같은 모든 창 이벤트를 처리합니다.cv::namedWindow()또는 이미지 표시cv::imshow().

opencv 신입사원들에게 흔히 있는 실수는 전화하는 것입니다.cv::imshow()각 추첨을 추적하지 않고 비디오 프레임을 통해 루프로 이동합니다.cv::waitKey(30)이 경우 highgui에는 그리기 요구를 처리할 시간이 주어지지 않기 때문에 화면에 아무것도 표시되지 않습니다.cv::imshow().

간단하게 말하면cvWaitKey()는 X밀리초 동안 sleep 상태로 있으며 키가 눌릴 때까지 기다립니다.

int cvWaitKey(int X);

키를 누르면 이 함수는 키의 ASCII 코드를 반환합니다.또는 해당 시간 동안 키를 누르지 않은 경우 -1을 반환합니다.

cvWaitKey(0)버튼을 누를 때까지 프로그램을 중지합니다.

cvWaitKey(10)프로그램을 중지하는 것이 아니라 버튼을 누르면 프로그램이 종료되도록 경고합니다.루프로 사용됩니다.cvWaitkey루프가 정지하지 않습니다.

통상의 사용

char k;

k=cvWaitKey(0);

if(k == 'ESC')

와 함께k어떤 키를 눌렀는지 알 수 있습니다.

cvWaitKey단순히 지연을 줄 뿐입니다.예를 들어 다음과 같습니다.

char c = cvWaitKey(33);
if( c == 27 ) break;

비디오가 openCV에 로드되어 프레임이 출력되는 코드와는 다른 코드입니다.33코드 내의 숫자는 이후를 의미합니다.33ms새로운 프레임이 표시됩니다.그 때문에, 는, Dely 또는 시간 간격이었습니다.33ms화면에 표시되는 각 프레임 사이에 있습니다.이게 도움이 됐으면 좋겠다.

키가 눌렸는지 확인하기 위해 밀리초를 기다립니다.이 간격에 키를 눌렀을 경우 ASCII 값이 반환됩니다.그렇지 않으면 -1이 됩니다.

의 의론0로 해석되다infinite

. highGUI 창을 끌려면 , 다음의 콜 할 필요가 있습니다.cv::waitKey()기능.예: 정적 이미지의 경우:

cv::imshow("winname", img);

while(cv::waitKey(1) != 27); // 27 = ascii value of ESC

에 문제가 있을 수 있는 사용자용 메모cvWaitKey( )기능.만약 당신이 그것을 발견한다면cvWaitKey(x)는 전혀 대기하고 있지 않습니다.실제로 창을 열고 있는 것을 확인해 주세요(즉,cvNamedWindow(...)을 붙입니다.cvNamedWindow(...) any any 선언cvWaitKey()함수 호출

/* Assuming this is a while loop -> e.g. video stream where img is obtained from say web camera.*/    
cvShowImage("Window",img);

/* A small interval of 10 milliseconds. This may be necessary to display the image correctly */
cvWaitKey(10);  

/* to wait until user feeds keyboard input replace with cvWaitKey(0); */

cvWaitKey(milliseconds)다음 키 입력 시 파라미터로 제공되는 밀리초 동안 기다립니다.

인간의 눈으로는 1/10초 이내에 움직이는 것을 볼 수 없기 때문에, 같은 화상 프레임을 화면에 일정 시간 보관 유지합니다.키보드의 키를 누르면 바로 다음 조작이 실행됩니다.

로 말하면 ★★★cvWaitKey(milliseconds)millisecond제공된 시간.

언급URL : https://stackoverflow.com/questions/5217519/what-does-opencvs-cvwaitkey-function-do

반응형