-
建立MFC工程,在VS2017(我自己的是2017)
保存路径(位置)及名字(名称)自己命名
接下来点击确定,出现以下界面:
此时可以点击 完成,也可以根据自己的需要选择下一步,进行相应的设置。(我的直接就点击完成)
-
工程建立好了
以下是我的整个工程(下面我会介绍)
如下是资源视图,点击它就进入界面
以下是我设计的界面(包括相机标定和投影仪标定,只说一下相机的,形式大同小异)
下图的上面部分为相机标定部分(包括,输入图像,输入一些需要的参数,然后就是一个标定按钮,保存按钮,和显示结果的按钮,保存格式有txt、xml),大家可以先把界面根据需要画出来,也就是在界面上设置好像下图一样。
关于用到什么工具大家可以百度,不细说了在这。我的也就用了以下几个:
Camera图像 程序如下(一定要对应自己按钮ID)
void CMFCYCHDlg::OnBnClickedBianli()//记得自己的ID
{
UpdateData(true);
//CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, pszFilter, this);
TCHAR szFilter[] = _T("All Files (*.*)|*.*|JPEG文件(*.jpg)|*.jpg|bmp文件(*.bmp)|*.bmp||");
//文件类型说明和扩展名间用 | 分隔,每种文件类型间用 | 分隔,末尾用 || 指明。
CFileDialog fileDlg(TRUE, NULL, NULL, OFN_ALLOWMULTISELECT, szFilter, this); //CFileDialog构造一个CFileDialog对象
/*第1个参数:TRUE为打开文件对话框;FALSE为保存文件对话框
2: 指定默认的文件扩展名。
3:指定默认的文件名。
4:指明一些特定风格。
5:是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。
6:为父窗口指针。
*/
if (fileDlg.DoModal() == IDOK)//没有点确定按钮
{
m_FilePath = fileDlg.GetPathName();
GetDlgItem(IDC_EDIT2)->SetWindowText(m_FilePath);//显示图像文件路径
}
POSITION pos = fileDlg.GetStartPosition();
while (pos != NULL)
{
int nCount = 0;
CString szPathName = fileDlg.GetNextPathName(pos);
//CStrin