OpenCV의 cvWaitKey() 함수는 무엇을 합니까?
의 실행 중에 일어나는 일cvWaitKey()
일반적인 사용 사례는 무엇입니까?OpenCV 레퍼런스에서 봤는데 정확한 용도가 불분명해요.
cvWaitKey(x) / cv::waitKey(x)
는 다음 두 가지 작업을 수행합니다.
- OpenCV 창에서 키를 누를 때까지 x밀리초 동안 대기합니다(즉, 에서 생성됨).
cv::imshow()
)는 stdin에서 콘솔 입력을 리슨하지 않는 것에 주의해 주세요.그 사이에 키를 눌렀을 경우는, 키의 ASCII 코드를 반환합니다.그렇지 않으면 반환됩니다.-1
(x가 0일 경우 키를 누를 때까지 무기한 대기합니다.) - 창 생성과 같은 모든 창 이벤트를 처리합니다.
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
'programing' 카테고리의 다른 글
vuex typeError의 vue-progressbar (0) | 2022.08.03 |
---|---|
Java에서 "unxtime" 가져오기 (0) | 2022.07.30 |
Vue 라우터에서의 JSON 반환 (0) | 2022.07.30 |
java.util.date에서 Joda Time으로 변환합니다. (0) | 2022.07.30 |
Vuej는 클래스를 행에 바인드한 후 나중에 행을 숨기거나 표시합니까? (0) | 2022.07.30 |