📄 configdlg.cpp
字号:
if(m_lower_Field[1] > m_green)
m_lower_Field[1] = m_green;
if(m_lower_Field[2] > m_RGBTotal)
m_lower_Field[2] = m_RGBTotal;
break;
}
}
BOOL CConfigDlg::OnInitDialog()
{
CDialog::OnInitDialog();
Init_Upper_Lower();
m_SliderDia.SetRange( 1, 100, TRUE );
m_SliderPercent.SetRange( 0, 1000, TRUE );
m_SliderZoom.SetRange( 0, 10, TRUE );
return TRUE;
}
void CConfigDlg::OnCustomdrawSliderDia(NMHDR* pNMHDR, LRESULT* pResult)
{
m_ObjectDia = m_SliderDia.GetPos();
CString str;
str.Format("物体直径:%d", m_ObjectDia);
m_DiaInfo.SetWindowText(str);
*pResult = 0;
}
void CConfigDlg::OnCustomdrawSliderPercent(NMHDR* pNMHDR, LRESULT* pResult)
{
m_ObjectPercent = 0.001 * m_SliderPercent.GetPos();
CString str;
str.Format("像素比例:%2.1f%%", 100 * m_ObjectPercent);
m_PercentInfo.SetWindowText(str);
*pResult = 0;
}
void CConfigDlg::OnGetresultButton()
{
m_bIsDisplayResult = !m_bIsDisplayResult;
if(!m_bIsDisplayResult)
{
m_GetResultButton.SetWindowText("显示辨析结果");
return;
}
m_GetResultButton.SetWindowText("返回到采样");
}
void CConfigDlg::OnCustomdrawSliderZoom(NMHDR* pNMHDR, LRESULT* pResult)
{
m_Zoom = m_SliderZoom.GetPos() * 10;
if(m_pVideoDlg != NULL)
{
m_pVideoDlg->m_VideoControl.SetZoom(m_Zoom);
m_pVideoDlg->m_FrameWidth = (int)(320 + (float)m_Zoom * 3.2);
m_pVideoDlg->m_FrameHeight = (int)(240 + (float)m_Zoom * 2.4);
CRect VideoRect;
CRect VideoClientRect;
CRect MainRect;
int ToolBarWidth;
m_pVideoDlg->GetWindowRect(&VideoRect);
m_pVideoDlg->GetClientRect(&VideoClientRect);
m_pVideoDlg->ClientToScreen(&VideoClientRect);
ToolBarWidth = VideoRect.Height() - VideoClientRect.Height();
m_pVideoDlg->m_Video.MoveWindow(0,
0,
m_pVideoDlg->m_FrameWidth,
m_pVideoDlg->m_FrameHeight);
m_pVideoDlg->MoveWindow(VideoRect.left,
VideoRect.top,
m_pVideoDlg->m_FrameWidth+6,
m_pVideoDlg->m_FrameHeight+ToolBarWidth);
MainRect.left = VideoRect.Width();
MainRect.right = MainRect.left+VideoRect.Width();
MainRect.top = 0;
MainRect.bottom = VideoRect.Height();
AfxGetMainWnd()->MoveWindow(MainRect);
}
CString str;
str.Format("视频焦距:%d", m_Zoom);
m_ZoomInfo.SetWindowText(str);
*pResult = 0;
}
void CConfigDlg::SetVideoDlg(CVideoDlg* pVideoDlg)
{
m_pVideoDlg = pVideoDlg;
}
void CConfigDlg::OnSave()
{
FILE* pFile;
pFile = fopen("sampling.txt", "w+");
if(!pFile)
{
MessageBox("sampling文件无法打开!");
return;
}
fprintf(pFile, "我队标志_red上限: %f\n", m_upper_MyTeamLable[0]);
fprintf(pFile, "我队标志_green上限: %f\n", m_upper_MyTeamLable[1]);
fprintf(pFile, "我队标志_RGBTotal上限: %f\n", m_upper_MyTeamLable[2]);
fprintf(pFile, "\n");
fprintf(pFile, "我队标志_red下限: %f\n", m_lower_MyTeamLable[0]);
fprintf(pFile, "我队标志_green下限: %f\n", m_lower_MyTeamLable[1]);
fprintf(pFile, "我队标志_RGBTotal下限: %f\n", m_lower_MyTeamLable[2]);
fprintf(pFile, "\n");
for(int i = 0; i < 5; i++)
{
fprintf(pFile, "我队队员%d_red上限: %f\n", i+1, m_upper_MyTeam[i][0]);
fprintf(pFile, "我队队员%d_green上限: %f\n", i+1, m_upper_MyTeam[i][1]);
fprintf(pFile, "我队队员%d_RGBTotal上限: %f\n", i+1, m_upper_MyTeam[i][2]);
fprintf(pFile, "\n");
fprintf(pFile, "我队队员%d_red下限: %f\n", i+1, m_lower_MyTeam[i][0]);
fprintf(pFile, "我队队员%d_green下限: %f\n", i+1, m_lower_MyTeam[i][1]);
fprintf(pFile, "我队队员%d_RGBTotal下限: %f\n", i+1, m_lower_MyTeam[i][2]);
fprintf(pFile, "\n");
}
fprintf(pFile, "\n");
fprintf(pFile, "他队标志_red上限: %f\n", m_upper_TheirTeamLable[0]);
fprintf(pFile, "他队标志_green上限: %f\n", m_upper_TheirTeamLable[1]);
fprintf(pFile, "他队标志_RGBTotal上限: %f\n", m_upper_TheirTeamLable[2]);
fprintf(pFile, "\n");
fprintf(pFile, "他队标志_red下限: %f\n", m_lower_TheirTeamLable[0]);
fprintf(pFile, "他队标志_green下限: %f\n", m_lower_TheirTeamLable[1]);
fprintf(pFile, "他队标志_RGBTotal下限: %f\n", m_lower_TheirTeamLable[2]);
fprintf(pFile, "\n");
for(i = 0; i < 5; i++)
{
fprintf(pFile, "他队队员%d_red上限: %f\n", i+1, m_upper_TheirTeam[i][0]);
fprintf(pFile, "他队队员%d_green上限: %f\n", i+1, m_upper_TheirTeam[i][1]);
fprintf(pFile, "他队队员%d_RGBTotal上限: %f\n", i+1, m_upper_TheirTeam[i][2]);
fprintf(pFile, "\n");
fprintf(pFile, "他队队员%d_red下限: %f\n", i+1, m_lower_TheirTeam[i][0]);
fprintf(pFile, "他队队员%d_green下限: %f\n", i+1, m_lower_TheirTeam[i][1]);
fprintf(pFile, "他队队员%d_RGBTotal下限: %f\n", i+1, m_lower_TheirTeam[i][2]);
fprintf(pFile, "\n");
}
fprintf(pFile, "\n");
fprintf(pFile, "球_red上限: %f\n", m_upper_Ball[0]);
fprintf(pFile, "球_green上限: %f\n", m_upper_Ball[1]);
fprintf(pFile, "球_RGBTotal上限: %f\n", m_upper_Ball[2]);
fprintf(pFile, "\n");
fprintf(pFile, "球_red下限: %f\n", m_lower_Ball[0]);
fprintf(pFile, "球_green下限: %f\n", m_lower_Ball[1]);
fprintf(pFile, "球_RGBTotal下限: %f\n", m_lower_Ball[2]);
fprintf(pFile, "\n");
fprintf(pFile, "场地_red上限: %f\n", m_upper_Field[0]);
fprintf(pFile, "场地_green上限: %f\n", m_upper_Field[1]);
fprintf(pFile, "场地_RGBTotal上限: %f\n", m_upper_Field[2]);
fprintf(pFile, "\n");
fprintf(pFile, "场地_red下限: %f\n", m_lower_Field[0]);
fprintf(pFile, "场地_green下限: %f\n", m_lower_Field[1]);
fprintf(pFile, "场地_RGBTotal下限: %f\n", m_lower_Field[2]);
fclose(pFile);
}
double CConfigDlg::ReadFile(FILE* pFile)
{
char *endptr;
char buffer[100];
CString str;
fscanf(pFile, "%s", buffer);
fscanf(pFile, "%s", buffer);
str = buffer;
return strtod( str, &endptr );
}
void CConfigDlg::OnLoad()
{
FILE* pFile;
pFile = fopen("sampling.txt", "r+");
if(!pFile)
{
MessageBox("sampling文件无法打开!");
return;
}
m_upper_MyTeamLable[0] = ReadFile(pFile);
m_upper_MyTeamLable[1] = ReadFile(pFile);
m_upper_MyTeamLable[2] = ReadFile(pFile);
m_lower_MyTeamLable[0] = ReadFile(pFile);
m_lower_MyTeamLable[1] = ReadFile(pFile);
m_lower_MyTeamLable[2] = ReadFile(pFile);
for(int i = 0; i < 5; i++)
{
m_upper_MyTeam[i][0] = ReadFile(pFile);
m_upper_MyTeam[i][1] = ReadFile(pFile);
m_upper_MyTeam[i][2] = ReadFile(pFile);
m_lower_MyTeam[i][0] = ReadFile(pFile);
m_lower_MyTeam[i][1] = ReadFile(pFile);
m_lower_MyTeam[i][2] = ReadFile(pFile);
}
m_upper_TheirTeamLable[0] = ReadFile(pFile);
m_upper_TheirTeamLable[1] = ReadFile(pFile);
m_upper_TheirTeamLable[2] = ReadFile(pFile);
m_lower_TheirTeamLable[0] = ReadFile(pFile);
m_lower_TheirTeamLable[1] = ReadFile(pFile);
m_lower_TheirTeamLable[2] = ReadFile(pFile);
for(i = 0; i < 5; i++)
{
m_upper_TheirTeam[i][0] = ReadFile(pFile);
m_upper_TheirTeam[i][1] = ReadFile(pFile);
m_upper_TheirTeam[i][2] = ReadFile(pFile);
m_lower_TheirTeam[i][0] = ReadFile(pFile);
m_lower_TheirTeam[i][1] = ReadFile(pFile);
m_lower_TheirTeam[i][2] = ReadFile(pFile);
}
m_upper_Ball[0] = ReadFile(pFile);
m_upper_Ball[1] = ReadFile(pFile);
m_upper_Ball[2] = ReadFile(pFile);
m_lower_Ball[0] = ReadFile(pFile);
m_lower_Ball[1] = ReadFile(pFile);
m_lower_Ball[2] = ReadFile(pFile);
m_upper_Field[0] = ReadFile(pFile);
m_upper_Field[1] = ReadFile(pFile);
m_upper_Field[2] = ReadFile(pFile);
m_lower_Field[0] = ReadFile(pFile);
m_lower_Field[1] = ReadFile(pFile);
m_lower_Field[2] = ReadFile(pFile);
fclose(pFile);
}
void CConfigDlg::OnButtonClearsample()
{
UpdateData(TRUE);
for(int i = 0; i < 5; i++)
{
for(int j = 0; j < 3; j++)
{
if(i+1 == m_RadioSelectObject)
{
m_upper_MyTeam[i][j] = -1;
m_lower_MyTeam[i][j] = 65535;
}
else if(7+i == m_RadioSelectObject)
{
m_upper_TheirTeam[i][j] = -1;
m_lower_TheirTeam[i][j] = 65535;
}
}
}
for(i = 0; i < 3; i++)
{
if(12 == m_RadioSelectObject)
{//球
m_upper_Ball[i] = -1;
m_lower_Ball[i] = 65535;
}
else if(0 == m_RadioSelectObject)
{//我队标志
m_upper_MyTeamLable[i] = -1;
m_lower_MyTeamLable[i] = 65535;
}
else if(6 == m_RadioSelectObject)
{//他队标志
m_upper_TheirTeamLable[i] = -1;
m_lower_TheirTeamLable[i] = 65535;
}
else if(13 == m_RadioSelectObject)
{//场地
m_upper_Field[i] = -1;
m_lower_Field[i] = 65535;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -