本帖最后由 guoguozzh 于 2022-9-11 19:35 编辑
MFC框架添加了两个滑块用作设置最小灰度和最大灰度,最小灰度为0,最大灰度为255,MFC界面没有显示二值化的结果,很奇怪。拖动滑块,其他的灰度范围又可以正确二值化处理。
滑块拖动的消息函数如下:
void CMyMFC6Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
int minpos, maxpos;
minpos = m_MinGray.GetPos();
maxpos = m_MaxGray.GetPos();
CString strminpos, strmaxpos;
strminpos.Format(_T("%d"), minpos);
strmaxpos.Format(_T("%d"), maxpos);
m_mingray.SetWindowTextW(strminpos);
m_maxgray.SetWindowTextW(strmaxpos);
int minGray = m_MinGray.GetPos();
int maxGray = m_MaxGray.GetPos();
if (minGray >= maxGray)
{
ClearWindow(m_hWindowHandle);
return;
}
if (m_bLoadImg)//已经正确打开图片 才进行二值化处理
{
ClearWindow(m_hWindowHandle);
HObject ThresholdImg;
FastThreshold(image, &ThresholdImg, minGray, maxGray, 100);
DispObj(ThresholdImg, m_hWindowHandle);
}
CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar);
}
|