Esempio n. 1
0
/*阈值分割消息映射*/ 
void CDynSplitView2::OnYuzhifenge() 
{
	int i;
	int Yuzhi;   //阈值变量
	// 各颜色分量的灰度分布密度
    float midu[256];
	
	// 计算灰度分布密度	 	  
	clearmem();
	CDibNew1->Zhifangtu(midu);             //调用灰度统计处理函数
	
	// 创建灰度直方图对话框
	CDlgZhiFangTu*    dlg;
	dlg=new CDlgZhiFangTu(this);
	dlg->Create(IDD_DIALOG_ZhiFangTu);
	// 传递灰度分布密度数据给面板类
	for (i = 0; i <256; i++)
		dlg->m_fIntensity[i] = midu[i];
	
	// 显示对话框,由用户进行灰度折线变换
	dlg->ShowWindow(SW_RESTORE);
	
    //创建阈值选择对话框
	CDlgYuZhiFenGe  dlg1;
	dlg1.m_Yuzhi=0;
	
	// 显示对话框,提示用户输入阈值
	if (dlg1.DoModal() != IDOK)
	{
		// 返回
		return;
	}
    Yuzhi=dlg1.m_Yuzhi;
	
	// 删除对话框
	delete dlg1;
	delete dlg;
	
	clearmem();
	CDibNew1->Yuzhifenge(Yuzhi);             //调用阈值分割处理函数
	Invalidate();
}
Esempio n. 2
0
int		buf_after_line(char *buf, int current)
{
  int		set;

  set = 0;
  while (buf[current])
    buf[set++] = buf[current++];
  buf[set] = '\0';
  clearmem((buf + set), '\0', (SIZE_BUF - set));
  return (set);
}