關閉攝像頭 結束線程

前面提到用線程打開了攝像頭程序。現在我們該如何去關閉它。該程序是在線程內的一個死循環,如果循環過程中來監聽某一變量的變化,做條件來結束循環。即該線程也結束。

bool CcamShowDlg::CameraOpen()
{
	capture.open(0);
	if (capture.isOpened() == 0)
	{
		AfxMessageBox(_T("攝像頭初始化失敗"));
		return false;
	}
	
	while (CameraState == TRUE)
	{
		Mat frame;
		capture >> frame;
		imshow("VideoShow",frame);
		waitKey(30);
	}
	capture.release();
	cvDestroyWindow("VideoShow");
	return false;
}
void CcamShowDlg::OnBnClickedButtonCameraopen()
{
	// TODO:  在此添加控件通知處理程序代碼
	CameraState = TRUE;
	CWinThread* pThread;
	pThread = AfxBeginThread(ThreadFunc,this);		
}
void CcamShowDlg::OnBnClickedButtonCameraclose()
{
	// TODO:  在此添加控件通知處理程序代碼
	CameraState=FALSE;
}


 

 

 

發佈了43 篇原創文章 · 獲贊 32 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章