⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opencv_dialogdlg.cpp

📁 front,profileface detect and head and shouder detect in webcam
💻 CPP
📖 第 1 页 / 共 2 页
字号:
           	cvFlip(img,img);
         	cvRectangle( img, pt1, pt2, CV_RGB(0,255,0), 3, 8, 0 );    	
            //cvFlip(img,img);	  
	       	
			
		
  		   	pFaceRect=(CvRect*)cvGetSeqElem(faces,i);
		     int width=abs(pt2.x-pt1.x);
			 int height =abs(pt2.y-pt1.y);
				
	
			//pCloneImg=cvCloneImage(img);
		
		//	cvSetImageROI(img,*pFaceRect);
         //cvFlip(img,img);
          // 	pFaceImg=
			//	cvCreateImage(size,img->depth,img->nChannels);
           	
			//cvResize(img,pFaceImg,CV_INTER_AREA); 
		    //cvFlip(pFaceImg,pFaceImg);
			//cvSaveImage("face.jpg",pFaceImg);
			
			cvResetImageROI(img);
			cvReleaseImage(&pFaceImg);
            cvReleaseImage(&frame_copy);
			//////////////////////////////////////////////////////
			 cvFlip(img,img);
	       //cvFlip(img,img);
            cvInitFont(&font2, CV_FONT_HERSHEY_SIMPLEX, 0.6, 0.6, 0, 2);
	        cvPutText(img,"UPPER BODY", cvPoint(10,10), &font2, CV_RGB(0,255,0));//cvScalar(0, 0, 300));
				}
			}

//cvReleaseImage( &gray );  
//cvReleaseMemStorage(&storage);  
cvReleaseHaarClassifierCascade(&cascade); 
 

}	
if ((p%3)==2)//PROFILEFACE
{
 const char* cascade_name ="haarcascade_profileface.xml ";
	cascade = (CvHaarClassifierCascade*)cvLoad((cascade_name), 0, 0, 0 );	 

 if( cascade )
    {
		// 6. cvHaarDetectObjects 窃荐甫 龋免秦辑 倔奔阑 棱酒忱聪促... 
		// 倔奔阑 器窃窍绊 乐绰 荤阿屈阑 倒妨林绰 巴 鞍匙夸.. 
		// 俊瘤啊 呈公 腹篮 版快客 利篮 版快俊 倔奔 捞固瘤甫 肋给 眠免窍绰 巴阑 规瘤窍档废 HAAR_DO_CANNY_PRUNING 可记阑 凛聪促.
		// 捞巴篮 俊瘤啊 利芭唱 腹篮 版快 捞甫 秦搬窍扁 纳聪 肺流阑 荤侩窍扁俊 困狼 捞抚阑 荤侩茄促绊 登绢 乐匙夸 
		// 啊快胶 胶公爹 + 家骇 俊瘤 眠免捞 纳聪 扁过涝聪促
        CvSeq* faces = cvHaarDetectObjects( frame_copy, cascade,storage,
                                            1.1, 6, CV_HAAR_DO_CANNY_PRUNING,
                                            cvSize(10, 10) );
		       
			// 倔奔俊 荤阿屈阑 弊妨林绊夸
			for( i = 0; i < (faces ? faces->total : 0); i++ )
				{
					CvRect* r = (CvRect*)cvGetSeqElem( faces, i );  //倔奔俊 荤阿屈 弊妨林扁 备泅
					pt1.x = r->x*scale;
					pt2.x = (r->x+r->width)*scale;
					pt1.y = r->y*scale;
					pt2.y = (r->y+r->height)*scale;
					cvRectangle( frame_copy, pt1, pt2, CV_RGB(255,255,0), 3, 8, 0 );
				// 7. 硅凯俊 弊覆捞 沥惑栏肺 历厘登绢 乐绰 包拌肺 捞甫 拳搁 惑俊 免仿窍扁 困秦辑绰 促矫 第笼绢 林绢具摆烈 
				
				  ////////////////////////////////////////////////////////////////
           	cvFlip(img,img);
         	
			 int width=abs(pt2.x-pt1.x);
			if (width<70)
			{
				cvRectangle( img, pt1, pt2, CV_RGB(255,0,0), 3, 8, 0 ); 
			
			
			} 	
            //cvFlip(img,img);	  
	       
			
		
  		   	pFaceRect=(CvRect*)cvGetSeqElem(faces,i);
		     //int width=abs(pt2.x-pt1.x);
			 int height =abs(pt2.y-pt1.y);
				
	
			//pCloneImg=cvCloneImage(img);
		
		//	cvSetImageROI(img,*pFaceRect);
         //cvFlip(img,img);
         //  	pFaceImg=
		//		cvCreateImage(size,img->depth,img->nChannels);
           	
		//	cvResize(img,pFaceImg,CV_INTER_AREA); 
		    //cvFlip(pFaceImg,pFaceImg);
		//	cvSaveImage("face.jpg",pFaceImg);
			
			cvResetImageROI(img);
			cvReleaseImage(&pFaceImg);
            cvReleaseImage(&frame_copy);
			//////////////////////////////////////////////////////
			 cvFlip(img,img);
	       //cvFlip(img,img);
           if (width<70)
		   {cvInitFont(&font2, CV_FONT_HERSHEY_SIMPLEX, 0.6, 0.6, 0, 2);
           cvPutText(img,"PROFILEFACE", cvPoint(10,10), &font2, CV_RGB(255,0,0));}//cvScalar(0, 0, 300));}
				}
			}
//cvReleaseImage( &gray );  
//cvReleaseMemStorage(&storage);  
cvReleaseHaarClassifierCascade(&cascade); 
 


}
/*if ((p%4)==3)//PROFILEFACE
{
 const char* cascade_name ="classifier WallClock.xml ";
	cascade = (CvHaarClassifierCascade*)cvLoad((cascade_name), 0, 0, 0 );	 

 if( cascade )
    {
		// 6. cvHaarDetectObjects 窃荐甫 龋免秦辑 倔奔阑 棱酒忱聪促... 
		// 倔奔阑 器窃窍绊 乐绰 荤阿屈阑 倒妨林绰 巴 鞍匙夸.. 
		// 俊瘤啊 呈公 腹篮 版快客 利篮 版快俊 倔奔 捞固瘤甫 肋给 眠免窍绰 巴阑 规瘤窍档废 HAAR_DO_CANNY_PRUNING 可记阑 凛聪促.
		// 捞巴篮 俊瘤啊 利芭唱 腹篮 版快 捞甫 秦搬窍扁 纳聪 肺流阑 荤侩窍扁俊 困狼 捞抚阑 荤侩茄促绊 登绢 乐匙夸 
		// 啊快胶 胶公爹 + 家骇 俊瘤 眠免捞 纳聪 扁过涝聪促
        CvSeq* faces = cvHaarDetectObjects( frame_copy, cascade,storage,
                                            1.1, 6, CV_HAAR_DO_CANNY_PRUNING,
                                            cvSize(10, 10) );
		       
			// 倔奔俊 荤阿屈阑 弊妨林绊夸
			for( i = 0; i < (faces ? faces->total : 0); i++ )
				{
					CvRect* r = (CvRect*)cvGetSeqElem( faces, i );  //倔奔俊 荤阿屈 弊妨林扁 备泅
					pt1.x = r->x*scale;
					pt2.x = (r->x+r->width)*scale;
					pt1.y = r->y*scale;
					pt2.y = (r->y+r->height)*scale;
					cvRectangle( frame_copy, pt1, pt2, CV_RGB(0,0,255), 3, 8, 0 );
				// 7. 硅凯俊 弊覆捞 沥惑栏肺 历厘登绢 乐绰 包拌肺 捞甫 拳搁 惑俊 免仿窍扁 困秦辑绰 促矫 第笼绢 林绢具摆烈 
				
				  ////////////////////////////////////////////////////////////////
           	cvFlip(img,img);
         	
			 int width=abs(pt2.x-pt1.x);
			if (width<70)
			{cvRectangle( img, pt1, pt2, CV_RGB(255,0,0), 3, 8, 0 );   } 	
            //cvFlip(img,img);	  
	       
			
		
  		   	pFaceRect=(CvRect*)cvGetSeqElem(faces,i);
		     //int width=abs(pt2.x-pt1.x);
			 int height =abs(pt2.y-pt1.y);
				
	
			//pCloneImg=cvCloneImage(img);
		
			cvSetImageROI(img,*pFaceRect);
         //cvFlip(img,img);
           	pFaceImg=
				cvCreateImage(size,img->depth,img->nChannels);
           	
			cvResize(img,pFaceImg,CV_INTER_AREA); 
		    //cvFlip(pFaceImg,pFaceImg);
			cvSaveImage("face.jpg",pFaceImg);
			
			cvResetImageROI(img);
			cvReleaseImage(&pFaceImg);

			//////////////////////////////////////////////////////
			 cvFlip(img,img);
	       //cvFlip(img,img);

				}
			}


}	*/ 	 
//if( cvWaitKey(30 ) >= 0 );

	//		cvShowImage("sss",frame_copy);
			
		//	cvShowImage("sssss",frame_copy);


			
}

void COpenCV_dialogDlg::OnButtonThreshold() 
{
	// TODO: Add your control notification handler code here
	if( FUN == m_Mode ) 
	{ 
		m_Mode = FUN; 
	} 
	else 
	{ 
		m_Mode = FUN; 
	} // end of if (FUN)
}

void COpenCV_dialogDlg::OnCheckComm() 
{
	// TODO: Add your control notification handler code here
		UpdateData(TRUE);
	BOOL bCheck = ((CButton*)GetDlgItem(IDC_CHECK_COMM))->GetCheck();

	if (bCheck) //  烹脚 疙飞 矫累
	{
		if(g_Comm.OpenCommPort(&Int2TTY()) != TRUE)
		{
			CString str;
			str.Format("COM%d 捞 捞固 荤侩吝牢瘤 犬牢窍技夸", m_nSettingPort +1);
			AfxMessageBox(str);
			((CButton*)GetDlgItem(IDC_CHECK_COMM))->SetCheck(!bCheck);
			return;
			
		}

		GetDlgItem(IDC_CHECK_COMM)->SetWindowText("烹脚辆丰");

		GetDlgItem(IDC_PORT)-> EnableWindow(FALSE);
		GetDlgItem(IDC_BAUDRATE)-> EnableWindow(FALSE);
	}
	
	else    // 烹脚 辆丰 疙飞
	{
		g_Comm.CloseConnection();

		GetDlgItem(IDC_CHECK_COMM)->SetWindowText("烹脚矫累");

		GetDlgItem(IDC_PORT)-> EnableWindow(TRUE);
		GetDlgItem(IDC_BAUDRATE)-> EnableWindow(TRUE);
	}	
}

//窃荐沥狼
//*********************************************************************************
//  格    利 : 烹脚 函荐 檬扁拳
//  傈崔牢磊 :
//  府畔蔼   : tty 檬扁拳 备炼眉
//  Note     : 
//*********************************************************************************
TTYSTRUCT COpenCV_dialogDlg::Int2TTY()
{
	TTYSTRUCT tty;
	ZERO_MEMORY(tty);

	tty.byCommPort = (BYTE)m_nSettingPort +1 ;
	tty.byXonXoff  = FALSE;
	tty.byByteSize = (BYTE)_nDataValues[m_nSettingData];
	tty.byFlowCtrl = (BYTE)_nFlow[m_nSettingFlow];
	tty.byParity   = (BYTE)m_nSettingParity;
	tty.byStopBits = (BYTE)_nStopBits[m_nSettingStop];
	tty.dwBaudRate = (DWORD)_nBaudRates[m_nSettingBaud];

	return tty;
	
}

//*********************************************************************************
//  格    利 : 烹脚函荐 悸泼 肺靛
//  傈崔牢磊 :
//  府畔蔼   : Int2TTY() 烹脚函荐 檬扁拳窃荐
//  Note     : 
//*********************************************************************************
TTYSTRUCT COpenCV_dialogDlg::LoadSettings()
{
	CWinApp *pApp = AfxGetApp();

	m_nSettingPort   = pApp->GetProfileInt(CS_REGKEY_SETTINGS, CS_REGENTRY_PORT, 1);
	m_nSettingParity = 0 ;
	m_nSettingBaud   = pApp->GetProfileInt(CS_REGKEY_SETTINGS, CS_REGENTRY_BAUD, 1);
	m_nSettingData   = 1 ;  // 8bit
	m_nSettingStop   = 0 ;  // one stop bit
	m_nSettingFlow   = 0 ;  // none

	return Int2TTY();
}



void COpenCV_dialogDlg::SaveSettings()
{
CWinApp*pApp=AfxGetApp();
pApp->WriteProfileInt(CS_REGKEY_SETTINGS,CS_REGENTRY_PORT,m_nSettingPort);
pApp->WriteProfileInt(CS_REGKEY_SETTINGS,CS_REGENTRY_PARITY,m_nSettingParity);
pApp->WriteProfileInt(CS_REGKEY_SETTINGS,CS_REGENTRY_BAUD,m_nSettingBaud);
pApp->WriteProfileInt(CS_REGKEY_SETTINGS,CS_REGENTRY_DATABITS,m_nSettingData);
pApp->WriteProfileInt(CS_REGKEY_SETTINGS,CS_REGENTRY_STOPBITS,m_nSettingStop);
pApp->WriteProfileInt(CS_REGKEY_SETTINGS,CS_REGENTRY_FLOW,m_nSettingFlow);
}

void COpenCV_dialogDlg::OnOK() 
{
	// TODO: Add extra validation here
	char start[]={'b'};
	g_Comm.WriteCommBlock(start,1);

	//CDialog::OnOK();
}

void COpenCV_dialogDlg::OnCancel() 
{
	// TODO: Add extra cleanup here
    SaveSettings();	
	CDialog::OnCancel();
}
/*void COpenCV_dialogDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}*/

void COpenCV_dialogDlg::OnTransmit() 
{
	// TODO: Add your control notification handler code here
	  BOOL bCheck = ((CButton*)GetDlgItem(IDC_CHECK_COMM))->GetCheck();
	if (bCheck)
	{
		switch(Check)
	{
	case true:
		Check=false;
		break;
	
	case false:
		Check=true;
		break;
	}
	//Check=true;
	}
	else {//messagebox
	};
}
void COpenCV_dialogDlg::OnTimer(UINT_PTR nIDEvent)//33ms 付促 鸥捞赣 牢磐反飘 荐青
{
	
	
	if(nIDEvent==1 && Check==true)
	{   int xC=(int)((pt1.x+pt2.x)/2);
	    int yC=(int)((pt1.y+pt2.y)/2);
		char szSendStr[10]={0};
		sprintf(szSendStr,"%04d\n",xC);
		g_Comm.WriteCommBlock(szSendStr,strlen(szSendStr));//烙海叼靛肺 巩磊 焊郴扁.
		char sySendStr[10]={0};
		sprintf(sySendStr,"%04d\n",yC);
		g_Comm.WriteCommBlock(sySendStr,strlen(sySendStr));
	
		
	
	}


	// TODO: 咯扁俊 皋矫瘤 贸府扁 内靛甫 眠啊 棺/肚绰 扁夯蔼阑 龋免钦聪促.

	CDialog::OnTimer(nIDEvent);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -