📄 testdoc.cpp
字号:
CString strMsg;
strMsg = "无法保存BMP图像";
// 提示出错
MessageBox(NULL, strMsg, "系统提示", MB_ICONINFORMATION | MB_OK);
}
return bSuccess;
//return CDocument::OnSaveDocument(lpszPathName);
}
void CTestDoc::OnSizeProperty()
{
// TODO: Add your command handler code here
CSizeDlg dlg;
if (dlg.DoModal()==IDOK)
{//尺寸大小
width = dlg.m_width;
hight = dlg.m_height;
}}
void CTestDoc::OnFileSaveAs()
{
// TODO: Add your command handler code here
CFileDialog dlg(FALSE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"*.bmp|*.bmp||");
CString str;
if (dlg.DoModal() == IDOK)
{
str = dlg.GetPathName();
}
CString lpszPathName;
lpszPathName.Format("%s.bmp",str);
OnSaveDocument(lpszPathName);
}
void CTestDoc::OnOpenSequence()
{
// TODO: Add your command handler code here
BOOL SaveFlag = TRUE;
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"*.bmp|*.bmp||*.png|*.png||");
if (dlg.DoModal() == IDOK)
{
str = dlg.GetPathName();
}
flag=3;
OpenType = FALSE;
//////////////////////
//inthreeindex与insefourthindex可以获取图像第三个和第四个\的坐标.
/////////////////////
int length = str.GetLength();
for(int i=length-1; i>=0; i--)
{
if (str.GetAt(i) == '\\' )
{
number++;
if (number ==1)//获得倒数第一个\的位置
{
break;
}
}
}
PathName = str.Left(i+1);//图像训练集与测试集之前的路径.
////////////////////////////////////////////
for (i=0;i<10;i++)
{//每个人有10张照片
//打开路径
AbsolutePath.Format("%s\%d.bmp",PathName,i);//打开路径
//////////////////////////////////////////////////////////////////////////
if (m_pSingle)
{
delete m_pSingle;
m_pSingle = NULL;
}
m_pSingle=new CDIB(AbsolutePath);
if (m_pSingle == NULL)
{
AfxMessageBox("不能打开图片!");
}
m_path = str;
UpdateAllViews(NULL);
if (width == 0 && hight == 0)
{//v尺寸初始设置
OnSizeProperty();
}
_CrtDumpMemoryLeaks();
OnDetect();//人脸检测
_CrtDumpMemoryLeaks();
OnJiequ(); //获取子图像
_CrtDumpMemoryLeaks();
OnInteequalize();//灰度归一化
_CrtDumpMemoryLeaks();
OnSizeequalize();//尺寸归一化
_CrtDumpMemoryLeaks();
//////////////////////////////////////////////////////////////////////////
CFileDialog dlg(FALSE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"*.bmp|*.bmp||*.png|*.png||");
if (SaveFlag)
{
if (dlg.DoModal() == IDOK)
{
SequenceStr = dlg.GetPathName();
}
length = SequenceStr.GetLength();
for(int j=length-1,number =0; j>=0; j--)
{
if (SequenceStr.GetAt(j) == '\\' )
{
number++;
if (number == 1)//获得倒数第四个\的位置
{
break;
}
}
}
SavePathName = SequenceStr.Left(j+1);//图像训练集与测试集之前的路径.
SaveFlag =FALSE;
}
SequenceSaveDictory.Format("%s\%d.bmp",SavePathName,i);
OnSaveDocument(SequenceSaveDictory);
/*delete m_pSingle;
m_pSingle = NULL;
if (SizeTempImage)
{
delete SizeTempImage;
SizeTempImage = NULL;
}
if (JieQuempimage)
{
delete JieQuempimage;
JieQuempimage = NULL;
}*/
number = 0;
}//end10照片
}
void CTestDoc::OnTrainingAllMap()
{
// TODO: Add your command handler code here
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"*.bmp|*.bmp||*.png|*.png||");
if (dlg.DoModal() == IDOK)
{
str = dlg.GetPathName();
}
flag=3;
OpenType = FALSE;
//////////////////////
//inthreeindex与insefourthindex可以获取图像第三个和第四个\的坐标.
/////////////////////
int length = str.GetLength();
for(int i=length-1; i>=0; i--)
{
if (str.GetAt(i) == '\\' )
{
number++;
if (number ==4)//获得倒数第四个\的位置
{
break;
}
}
}
PathName = str.Left(i+1);//图像训练集与测试集之前的路径.
for (int k=0;k<6;k++)
{//不同的表情
SixFaceSaveDirectory.Format("%s\%s\%d",PathName,SaveTypeString[1],k);
//判断是否存在SaveDirectory文件夹.
HANDLE m_hFile = FindFirstFile(SixFaceSaveDirectory,&wfd);//文件夹查找
if(m_hFile==INVALID_HANDLE_VALUE)
{//如果该文件夹不存在,创建.
if (!CreateDirectory(SixFaceSaveDirectory, NULL))
{
AfxMessageBox("文件夹创建不成功");
}
}
for (i=0;i<10;i++)
{//表情库中在15个人
/////////////////////////////////////////////
//创建文件夹.
SaveDirectory.Format("%s\%s\%d\\%d",PathName,SaveTypeString[1],k,i);
//判断是否存在SaveDirectory文件夹.
HANDLE m_hFile = FindFirstFile(SaveDirectory,&wfd);//文件夹查找
if(m_hFile==INVALID_HANDLE_VALUE)
{//如果该文件夹不存在,创建.
if (!CreateDirectory(SaveDirectory, NULL))
{
AfxMessageBox("文件夹创建不成功");
}
}
/////////////////////////////////////////////
for (int j=0;j<10;j++)
{//每个人有10张照片
//打开路径
AbsolutePath.Format("%s\%s\%s\%d\\%d.bmp",PathName,TypeString[1],FaceString[k],i,j);//打开路径
//////////////////////////////////////////////////////////////////////////
/*if (m_pSingle)
{
delete m_pSingle;
m_pSingle = NULL;
}*/
m_pSingle=new CDIB(AbsolutePath);
if (m_pSingle == NULL)
{
AfxMessageBox("不能打开图片!");
}
m_path = str;
//UpdateAllViews(NULL);
if (width == 0 && hight == 0)
{//v尺寸初始设置
OnSizeProperty();
}
_CrtDumpMemoryLeaks();
OnDetect();//人脸检测
_CrtDumpMemoryLeaks();
OnJiequ(); //获取子图像
_CrtDumpMemoryLeaks();
OnInteequalize();//灰度归一化
_CrtDumpMemoryLeaks();
OnSizeequalize();//尺寸归一化
_CrtDumpMemoryLeaks();
//////////////////////////////////////////////////////////////////////////
SavePathName.Format("%s\%s\%d\\%d\\%d%d%d.bmp",PathName,SaveTypeString[1],k,i,k,i,j);//保存路径
OnSaveDocument(SavePathName);
/*delete m_pSingle;
m_pSingle = NULL;
if (SizeTempImage)
{
delete SizeTempImage;
SizeTempImage = NULL;
}
if (JieQuempimage)
{
delete JieQuempimage;
JieQuempimage = NULL;
}*/
}//end10照片
}//end15个人
}//end6类表情
number = 0;
}
void CTestDoc::OnTestAllMap()
{
// TODO: Add your command handler code here
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"*.bmp|*.bmp||*.png|*.png||");
if (dlg.DoModal() == IDOK)
{
str = dlg.GetPathName();
}
flag=3;
OpenType = FALSE;
//////////////////////
//inthreeindex与insefourthindex可以获取图像第三个和第四个\的坐标.
/////////////////////
int length = str.GetLength();
for(int i=length-1; i>=0; i--)
{
if (str.GetAt(i) == '\\' )
{
number++;
if (number ==4)//获得倒数第四个\的位置
{
break;
}
}
}
PathName = str.Left(i+1);//图像训练集与测试集之前的路径.
for (int k=0;k<6;k++)
{//不同的表情
SixFaceSaveDirectory.Format("%s\%s\%d",PathName,SaveTypeString[0],k);
//判断是否存在SaveDirectory文件夹.
HANDLE m_hFile = FindFirstFile(SixFaceSaveDirectory,&wfd);//文件夹查找
if(m_hFile==INVALID_HANDLE_VALUE)
{//如果该文件夹不存在,创建.
if (!CreateDirectory(SixFaceSaveDirectory, NULL))
{
AfxMessageBox("文件夹创建不成功");
}
}
for (i=0;i<14;i++)
{//表情库中在15个人
/////////////////////////////////////////////
//创建文件夹.
SaveDirectory.Format("%s\%s\%d\\%d",PathName,SaveTypeString[0],k,i);
//判断是否存在SaveDirectory文件夹.
HANDLE m_hFile = FindFirstFile(SaveDirectory,&wfd);//文件夹查找
if(m_hFile==INVALID_HANDLE_VALUE)
{//如果该文件夹不存在,创建.
if (!CreateDirectory(SaveDirectory, NULL))
{
AfxMessageBox("文件夹创建不成功");
}
}
/////////////////////////////////////////////
for (int j=0;j<10;j++)
{//每个人有10张照片
//打开路径
AbsolutePath.Format("%s\%s\%s\%d\\%d.bmp",PathName,TypeString[0],FaceString[k],i,j);//打开路径
//////////////////////////////////////////////////////////////////////////
if (m_pSingle)
{
delete m_pSingle;
m_pSingle = NULL;
}
m_pSingle=new CDIB(AbsolutePath);
if (m_pSingle == NULL)
{
AfxMessageBox("不能打开图片!");
}
m_path = str;
//UpdateAllViews(NULL);
if (width == 0 && hight == 0)
{//v尺寸初始设置
OnSizeProperty();
}
_CrtDumpMemoryLeaks();
OnDetect();//人脸检测
_CrtDumpMemoryLeaks();
OnJiequ(); //获取子图像
_CrtDumpMemoryLeaks();
OnInteequalize();//灰度归一化
_CrtDumpMemoryLeaks();
OnSizeequalize();//尺寸归一化
_CrtDumpMemoryLeaks();
//////////////////////////////////////////////////////////////////////////
SavePathName.Format("%s\%s\%d\\%d\\%d.bmp",PathName,SaveTypeString[0],k,i,j);//保存路径
OnSaveDocument(SavePathName);
/*delete m_pSingle;
m_pSingle = NULL;
if (SizeTempImage)
{
delete SizeTempImage;
SizeTempImage = NULL;
}
if (JieQuempimage)
{
delete JieQuempimage;
JieQuempimage = NULL;
}*/
}//end10照片
}//end15个人
}//end6类表情
number = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -