📄 opencv_dialogdlg.cpp
字号:
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 + -