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

📄 testdoc.cpp

📁 读入图像序列
💻 CPP
📖 第 1 页 / 共 2 页
字号:

		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 + -