我正在做图像显示一块
其中利用了MFC EditBrowse Control控件进行文件打开
然后利用OpenCV库函数进行窗口创建与图像显示
现在有个问题就是:当我选择第一副图像文件时,能够正常显示,程序不关闭,再次选择另一副图片进行显示时,程序出错了~
不清楚哪里的问题,希望高手指导一下,找了好久了
其中利用了MFC EditBrowse Control控件进行文件打开
然后利用OpenCV库函数进行窗口创建与图像显示
现在有个问题就是:当我选择第一副图像文件时,能够正常显示,程序不关闭,再次选择另一副图片进行显示时,程序出错了~
不清楚哪里的问题,希望高手指导一下,找了好久了
{
// TODO: 如果该控件是 RICHEDIT 控件,它将不
// 发送此通知,除非重写 CDialogEx::OnInitDialog()
// 函数并调用 CRichEditCtrl().SetEventMask(),
// 同时将 ENM_CHANGE 标志“或”运算到掩码中。
if(FALSE == m_openFlags)
{
GetDlgItem(IDC_ImageBrowse)->GetWindowText(m_ImageAddress);//获取到文件路径名
m_openFlags = TRUE;
}
else
{
m_ImageAddress = _T("");
GetDlgItem(IDC_ImageBrowse)->GetWindowText(m_ImageAddress);
}
// TODO: 在此添加控件通知处理程序代码
}code]
上面部分是加载图片部分
[code=C/C++]void CEarLeainingDlg::OnBnClickedShowimage()
{
// TODO: 在此添加控件通知处理程序代码
//------------------------显示图片内容----------
TheImage = cvLoadImage(m_ImageAddress);
cvNamedWindow("耳朵", CV_WINDOW_AUTOSIZE);
cvShowImage("耳朵", TheImage);
cvWaitKey(0);
cvReleaseImage(&TheImage);
cvDestroyWindow("耳朵");
}
上面是调用OpenCV中库函数直接显示
void CEarLeainingDlg::OnEnChangeImagebrowse()
{
// TODO: 如果该控件是 RICHEDIT 控件,它将不
// 发送此通知,除非重写 CDialogEx::OnInitDialog()
// 函数并调用 CRichEditCtrl().SetEventMask(),
// 同时将 ENM_CHANGE 标志“或”运算到掩码中。
if(FALSE == m_openFlags)
{
GetDlgItem(IDC_ImageBrowse)->GetWindowText(m_ImageAddress);//获取到文件路径名
m_openFlags = TRUE;
}
else
{
m_ImageAddress = _T("");
GetDlgItem(IDC_ImageBrowse)->GetWindowText(m_ImageAddress);
}这个if -else语句有什么作用 不都一样吗?