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

📄 dlgmorph.cpp

📁 用C++实现的数字图像处理各个算法源代码 我精心整理的 很难的啊 希望可以给大家带来帮助
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	m_bStru16 = FALSE;
	m_bStru17 = FALSE;
	m_bStru18 = FALSE;
	m_bStru19 = FALSE;
	m_bStru20 = FALSE;
	m_bStru21 = FALSE;
	m_bStru22 = FALSE;
	m_bStru23 = FALSE;
	m_bStru24 = FALSE;
	
	// 更新文本框状态
	UpdateEdit();
	
	// 更新
	UpdateData(FALSE);
}

void CDlgMorph::OnCircle() 
{
	//5×5圆形结构元素
	m_nMode = 2;
	m_nStruW  = 5;
	m_nStruH  = 5;
	m_nStruXc = 2;
	m_nStruYc = 2;
	
	m_bStru00 = FALSE;
	m_bStru01 = TRUE;
	m_bStru02 = TRUE;
	m_bStru03 = TRUE;
	m_bStru04 = FALSE;
	m_bStru05 = TRUE;
	m_bStru06 = TRUE;
	m_bStru07 = TRUE;
	m_bStru08 = TRUE;
	m_bStru09 = TRUE;
	m_bStru10 = TRUE;
	m_bStru11 = TRUE;
	m_bStru12 = TRUE;
	m_bStru13 = TRUE;
	m_bStru14 = TRUE;
	m_bStru15 = TRUE;
	m_bStru16 = TRUE;
	m_bStru17 = TRUE;
	m_bStru18 = TRUE;
	m_bStru19 = TRUE;
	m_bStru20 = FALSE;
	m_bStru21 = TRUE;
	m_bStru22 = TRUE;
	m_bStru23 = TRUE;
	m_bStru24 = FALSE;
	
	// 更新文本框状态
	UpdateEdit();
	
	// 更新
	UpdateData(FALSE);
}

void CDlgMorph::OnRect() 
{
	//5×3矩形结构元素
	m_nMode = 3;
	m_nStruW  = 5;
	m_nStruH  = 3;
	m_nStruXc = 2;
	m_nStruYc = 1;
	
	m_bStru00 = TRUE;
	m_bStru01 = TRUE;
	m_bStru02 = TRUE;
	m_bStru03 = TRUE;
	m_bStru04 = TRUE;
	m_bStru05 = TRUE;
	m_bStru06 = TRUE;
	m_bStru07 = TRUE;
	m_bStru08 = TRUE;
	m_bStru09 = TRUE;
	m_bStru10 = TRUE;
	m_bStru11 = TRUE;
	m_bStru12 = TRUE;
	m_bStru13 = TRUE;
	m_bStru14 = TRUE;
	m_bStru15 = FALSE;
	m_bStru16 = FALSE;
	m_bStru17 = FALSE;
	m_bStru18 = FALSE;
	m_bStru19 = FALSE;
	m_bStru20 = FALSE;
	m_bStru21 = FALSE;
	m_bStru22 = FALSE;
	m_bStru23 = FALSE;
	m_bStru24 = FALSE;
	
	// 更新文本框状态
	UpdateEdit();
	
	// 更新
	UpdateData(FALSE);
}

void CDlgMorph::OnHori() 
{
	//3×1水平结构元素
	m_nMode = 4;
	m_nStruW  = 3;
	m_nStruH  = 1;
	m_nStruXc = 1;
	m_nStruYc = 0;
	
	m_bStru00 = TRUE;
	m_bStru01 = TRUE;
	m_bStru02 = TRUE;
	m_bStru03 = FALSE;
	m_bStru04 = FALSE;
	m_bStru05 = FALSE;
	m_bStru06 = FALSE;
	m_bStru07 = FALSE;
	m_bStru08 = FALSE;
	m_bStru09 = FALSE;
	m_bStru10 = FALSE;
	m_bStru11 = FALSE;
	m_bStru12 = FALSE;
	m_bStru13 = FALSE;
	m_bStru14 = FALSE;
	m_bStru15 = FALSE;
	m_bStru16 = FALSE;
	m_bStru17 = FALSE;
	m_bStru18 = FALSE;
	m_bStru19 = FALSE;
	m_bStru20 = FALSE;
	m_bStru21 = FALSE;
	m_bStru22 = FALSE;
	m_bStru23 = FALSE;
	m_bStru24 = FALSE;
	
	// 更新文本框状态
	UpdateEdit();
	
	// 更新
	UpdateData(FALSE);
}

void CDlgMorph::OnVert() 
{
	//1×3垂直结构元素
	m_nMode = 5;
	m_nStruW  = 1;
	m_nStruH  = 3;
	m_nStruXc = 0;
	m_nStruYc = 1;
	
	m_bStru00 = TRUE;
	m_bStru01 = FALSE;
	m_bStru02 = FALSE;
	m_bStru03 = FALSE;
	m_bStru04 = FALSE;
	m_bStru05 = TRUE;
	m_bStru06 = FALSE;
	m_bStru07 = FALSE;
	m_bStru08 = FALSE;
	m_bStru09 = FALSE;
	m_bStru10 = TRUE;
	m_bStru11 = FALSE;
	m_bStru12 = FALSE;
	m_bStru13 = FALSE;
	m_bStru14 = FALSE;
	m_bStru15 = FALSE;
	m_bStru16 = FALSE;
	m_bStru17 = FALSE;
	m_bStru18 = FALSE;
	m_bStru19 = FALSE;
	m_bStru20 = FALSE;
	m_bStru21 = FALSE;
	m_bStru22 = FALSE;
	m_bStru23 = FALSE;
	m_bStru24 = FALSE;
	
	// 更新文本框状态
	UpdateEdit();
	
	// 更新
	UpdateData(FALSE);
}

void CDlgMorph::OnCustom() 
{
	// 自定义模板
	m_nMode = 6;
	
	// 更新文本框状态
	UpdateEdit();
}

void CDlgMorph::OnKillfocusEditStruH() 
{
	// 更新
	UpdateData(TRUE);
	
	// 更新文本框状态
	UpdateEdit();
}

void CDlgMorph::OnKillfocusEditStruW() 
{
	// 更新
	UpdateData(TRUE);
	
	// 更新文本框状态
	UpdateEdit();
}

void CDlgMorph::OnKillfocusEditStruXc() 
{
	// 更新
	UpdateData(TRUE);
	
	// 更新文本框状态
	UpdateEdit();
}

void CDlgMorph::OnKillfocusEditStruYc() 
{
	// 更新
	UpdateData(TRUE);
	
	// 更新文本框状态
	UpdateEdit();
}

void CDlgMorph::OnOK() 
{
	// 获取用户设置(更新)
	UpdateData(TRUE);
	
	// 判断设置是否有效
	if ((m_nStruW < 0) || (m_nStruXc > m_nStruW - 1) ||
		(m_nStruH < 0) || (m_nStruYc > m_nStruH - 1))
	{
		// 提示用户参数设置错误
		MessageBox("中心元素参数设置错误!", "系统提示" , 
			MB_ICONINFORMATION | MB_OK);
		
		// 返回
		return;
	}
	
	int Mask[200];

	m_nMaskLen = 0;

	int i, j, k = 0;

	//根据对检查框的选择状态给结构元素赋值(记录的相应点的X,Y坐标)
	for(i = 0; i < m_nStruH; i++)
	{
		for(j = 0; j < m_nStruW; j++)
		{
			//IDC_STRU00等ID其实是一个整数,它的数值定义在Resource.h中定义。
			
			//获取相应检查框控件的指针
			CButtonST *pCheckBox = (CButtonST *) GetDlgItem(IDC_STRU00 + i * 5 + j);
			//检查框的状态
			if(pCheckBox->GetCheck() == 1)
			{
				//结构元素计数(以点数为计数单位)
				m_nMaskLen++;
				Mask[k] = j - m_nStruXc;
				k++;
				Mask[k] = m_nStruYc - i;
				k++;
			}
		}
	}

	//创建记录结构元素的数组
	m_npMask = new int [2 * m_nMaskLen];

	//将统计出的结构元素拷贝到m_npMask指向的数组中
	memcpy(m_npMask, Mask, 2 * m_nMaskLen * sizeof(int));

	CDialog::OnOK();
}

void CDlgMorph::OnChangeEditStruXc() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	// 更新
	UpdateData(TRUE);
	
	// 更新文本框状态
	UpdateEdit();
	
}

void CDlgMorph::OnChangeEditStruYc() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	// 更新
	UpdateData(TRUE);
	
	// 更新文本框状态
	UpdateEdit();
	
}

void CDlgMorph::OnChangeEditStruH() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	// 更新
	UpdateData(TRUE);
	
	// 更新文本框状态
	UpdateEdit();
}

void CDlgMorph::OnChangeEditStruW() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	// 更新
	UpdateData(TRUE);
	
	// 更新文本框状态
	UpdateEdit();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -