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

📄 frametuning.cpp

📁 3D reconstruction, medical image processing from colons, using intel image processing for based clas
💻 CPP
📖 第 1 页 / 共 2 页
字号:
			{				m_pHistogramWnd[0]->ShowWindow(SW_HIDE);				m_pHistogramWnd[1]->ShowWindow(SW_HIDE);				m_pStcOTF->ShowWindow(SW_HIDE);				m_pStcThreshold4->ShowWindow(SW_HIDE);				m_pStcOpacity->ShowWindow(SW_HIDE);			}		}		else if(nCurMainMenuID == IDF_TOP_REPORT)		{		}	}}// 矫府令啊 函版瞪 版快void RxFrameTuning::OnChangedSeries(int nSeries){	if(nSeries == RXSERIES_REF)	{		m_pHistogramWnd[1]->ShowWindow(SW_HIDE);		m_pHistogramWnd[0]->ShowWindow(SW_SHOW);		m_pStcOTF->ShowWindow(SW_SHOW);		m_pStcThreshold4->ShowWindow(SW_SHOW);		m_pStcOpacity->ShowWindow(SW_SHOW);	}	else if(nSeries == RXSERIES_FLT)	{		m_pHistogramWnd[0]->ShowWindow(SW_HIDE);		m_pHistogramWnd[1]->ShowWindow(SW_SHOW);		m_pStcOTF->ShowWindow(SW_SHOW);		m_pStcThreshold4->ShowWindow(SW_SHOW);		m_pStcOpacity->ShowWindow(SW_SHOW);	}	else	{		m_pHistogramWnd[0]->ShowWindow(SW_HIDE);		m_pHistogramWnd[1]->ShowWindow(SW_HIDE);		m_pStcOTF->ShowWindow(SW_HIDE);		m_pStcThreshold4->ShowWindow(SW_HIDE);		m_pStcOpacity->ShowWindow(SW_HIDE);	}}/////////////////////////////////////////////////////////////////////////////// 洒胶配弊伐 努贰胶肺何磐 OTF 框流看阑版快 罐霸等促.void RxFrameTuning::OnOTFPosChanged(NMHDR* pNMHDR, LRESULT* pResult){	int		nSeries;	if(pNMHDR->idFrom == IDF_TUNING_WND_HISTOGRAM_REF)		nSeries = RXSERIES_REF;	else if(pNMHDR->idFrom == IDF_TUNING_WND_HISTOGRAM_FLT)		nSeries = RXSERIES_FLT;		UpdateThreshold(nSeries);	_NMHISTO_CTRL	*pHistoCtrl = (_NMHISTO_CTRL *)pNMHDR;	RxHistogram		*pHistogram = (RxHistogram *)pHistoCtrl->pHistogram;	if(pHistogram->IsEnableOTFPolygon())		UpdateVRWnd(nSeries);	*pResult = 0;}void RxFrameTuning::OnOTFActiveChanged(NMHDR* pNMHDR, LRESULT* pResult){	int		nSeries;	if(pNMHDR->idFrom == IDF_TUNING_WND_HISTOGRAM_REF)		nSeries = RXSERIES_REF;	else if(pNMHDR->idFrom == IDF_TUNING_WND_HISTOGRAM_FLT)		nSeries = RXSERIES_FLT;	UpdateThreshold(nSeries);	*pResult = 0;}void RxFrameTuning::OnOTFColorChanged(NMHDR* pNMHDR, LRESULT* pResult){	int		nSeries;	if(pNMHDR->idFrom == IDF_TUNING_WND_HISTOGRAM_REF)		nSeries = RXSERIES_REF;	else if(pNMHDR->idFrom == IDF_TUNING_WND_HISTOGRAM_FLT)		nSeries = RXSERIES_FLT;	UpdateVRWnd(nSeries);	*pResult = 0;}void RxFrameTuning::OnDeltaposSpinOpacity(NMHDR* pNMHDR, LRESULT* pResult){	NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;	// 胶巧 滚瓢狼 困 肚绰 酒贰甫 喘范绰瘤 牢侥茄促.	if(pNMUpDown->iDelta < 0 )		m_pEdOpacity->IncreaseEdit();	else		m_pEdOpacity->DecreaseEdit();		*pResult = 0;}void RxFrameTuning::OnOTFEditChanged(NMHDR* pNMHDR, LRESULT* pResult){	NMED_INT	*pNMED = (NMED_INT *)pNMHDR;	int		nSeries = RxGetCurSeries();	if(nSeries != RXSERIES_REF && nSeries != RXSERIES_FLT)		return;	int		nEdit = pNMED->nEdit;	switch(pNMED->hdr.idFrom)	{		case IDF_TUNING_ED_THRESHOLD1 :			m_pHistogramWnd[nSeries]->SetOTFPointX(HGARG_1, nEdit, -1, -1, -1);			m_pEdThreshold2->SetRange(nEdit, -1, EMASK_MIN);			UpdateVRWnd(nSeries);			break;		case IDF_TUNING_ED_THRESHOLD2 :			m_pHistogramWnd[nSeries]->SetOTFPointX(HGARG_2, -1, nEdit, -1, -1);			m_pEdThreshold1->SetRange(-1, nEdit, EMASK_MAX);			m_pEdThreshold3->SetRange(nEdit, -1, EMASK_MIN);			UpdateVRWnd(nSeries);			break;		case IDF_TUNING_ED_THRESHOLD3 :			m_pHistogramWnd[nSeries]->SetOTFPointX(HGARG_3, -1, -1, nEdit, -1);			m_pEdThreshold2->SetRange(-1, nEdit, EMASK_MAX);			m_pEdThreshold4->SetRange(nEdit, -1, EMASK_MIN);			UpdateVRWnd(nSeries);			break;		case IDF_TUNING_ED_THRESHOLD4 :			m_pHistogramWnd[nSeries]->SetOTFPointX(HGARG_4, -1, -1, -1, nEdit);			m_pEdThreshold3->SetRange(-1, nEdit, EMASK_MAX);			UpdateVRWnd(nSeries);			break;	}	*pResult = 0;}void RxFrameTuning::OnOpacityEditChanged(NMHDR* pNMHDR, LRESULT* pResult){	NMED_FLOAT	*pNMED = (NMED_FLOAT *)pNMHDR;	int		nSeries = RxGetCurSeries();	if(nSeries != RXSERIES_REF && nSeries != RXSERIES_FLT)		return;	m_pHistogramWnd[nSeries]->SetOTFOpacity(pNMED->fEdit);	UpdateVRWnd(nSeries);	*pResult = 0;}void RxFrameTuning::OnBtnThreshold(){	CString		strPathPreset = _T("");	RxRegistry	reg;	reg.QueryValueSZ(_T("Data Directory"), &strPathPreset);	strPathPreset += _T("Preset");	// Check directory from registry	CString strTemp = strPathPreset;	if(strTemp.GetAt(strTemp.GetLength()-1) != '\\')		strTemp += _T("\\");	strTemp += _T(".");		CFileStatus status;	if (!CFile::GetStatus(strPathPreset, status))		::CreateDirectory((LPCTSTR)strPathPreset, NULL);	strPathPreset = strPathPreset + _T("\\");	int			iModality	= 1;	CString		strFileName;	if(iModality == 0)		strFileName = _T("OTFMR.dat");	else if(iModality == 1)		strFileName = _T("OTFCT.dat");	strFileName = strPathPreset + strFileName;	m_pPresetOTF->ReadPresetOTFFile(iModality, strFileName);	// combo box initialize	InitOTFComboBox();	m_pCBPresetOTF->ShowDropDown(TRUE);	m_pCBPresetOTF->SetFocus();}void RxFrameTuning::OnBtnAddOTF(){	AddOTFPolygon();	UpdateVRWnd();}void RxFrameTuning::OnBtnDelOTF(){	DelOTFPolygon();	UpdateVRWnd();}/////////////////////////////////////////////////////////////////////////////void RxFrameTuning::InitOTFComboBox(){	m_pCBPresetOTF->ResetContent();	int		iCount = m_pPresetOTF->GetPresetOTFCount();	_PRESET_OTF_PTR	stpPresetOTF;	for(int i = 0; i < iCount; i++)	{		stpPresetOTF = m_pPresetOTF->GetPresetOTF(i);		m_pCBPresetOTF->AddString(stpPresetOTF->strTitle);	}	m_pCBPresetOTF->AddString(_T("User Define"));}void RxFrameTuning::UpdateThreshold(int nSeries){	if(nSeries < 0)		nSeries = RxGetCurSeries();	if(nSeries != RXSERIES_REF && nSeries != RXSERIES_FLT)		return;		// Update Controls	_OTF_POLYGON		*pOTFPolygon = m_pHistogramWnd[nSeries]->GetOTFPolygon();	m_pEdThreshold1->SetRange(-1, pOTFPolygon->nPointPoX[1], EMASK_MAX);	m_pEdThreshold1->SetEdit(pOTFPolygon->nPointPoX[0]);	m_pEdThreshold2->SetRange(pOTFPolygon->nPointPoX[0], pOTFPolygon->nPointPoX[2]);	m_pEdThreshold2->SetEdit(pOTFPolygon->nPointPoX[1]);	m_pEdThreshold3->SetRange(pOTFPolygon->nPointPoX[1], pOTFPolygon->nPointPoX[3]);	m_pEdThreshold3->SetEdit(pOTFPolygon->nPointPoX[2]);	m_pEdThreshold4->SetRange(pOTFPolygon->nPointPoX[2], -1, EMASK_MIN);	m_pEdThreshold4->SetEdit(pOTFPolygon->nPointPoX[3]);	m_pEdOpacity->SetEdit(pOTFPolygon->fOpacityPo);}void RxFrameTuning::UpdateVRWnd(int nSeries){	if(nSeries < 0)		nSeries = RxGetCurSeries();	if(nSeries != RXSERIES_REF && nSeries != RXSERIES_FLT)		return;	RxFMWndVR			*pWndVR				= RxGetFrameMain()->m_pFMWndVR[nSeries];	RxLocalizerManager	*pLocalizerManager	= RxGetFrameMain()->m_pLocalizerManager[nSeries];	pWndVR->SetChangedOTF(m_pHistogramWnd[nSeries]->GetSpectrum());	pLocalizerManager->SetChangedOTF(m_pHistogramWnd[nSeries]->GetSpectrum());}void RxFrameTuning::AddOTFPolygon(int nSeries){	if(nSeries < 0)		nSeries = RxGetCurSeries();	if(nSeries != RXSERIES_REF && nSeries != RXSERIES_FLT)		return;		CString		strModality;	int			nType;	int			nPoint[4];	COLORREF	crPoint[4];	RxVolumeData* pVolumeData = RxGetVolumeData(nSeries);	RxDicomObject Dcm = pVolumeData->m_pDicomInfo[nSeries];	Dcm.GetDicomInfo(DI_MODALITY, &strModality, &nType);	if(strModality == _T("MR"))	{		nPoint[0] =  30;					nPoint[1] = 100;		nPoint[2] = 300;					nPoint[3] = 320;		crPoint[0] = RGB(255,  98,  98);	crPoint[1] = RGB(255, 255, 180);		crPoint[2] = RGB(255, 255, 255);	crPoint[3] = RGB(255, 255, 255);	}	else	{		nPoint[0] = 120+1024;				nPoint[1] = 250+1024;		nPoint[2] = 520+1024;				nPoint[3] = 650+1024;		nPoint[0] = -800;				nPoint[1] = -720;		nPoint[2] = -300;				nPoint[3] = -220;		crPoint[0] = RGB(255,  98,  98);	crPoint[1] = RGB(255, 255, 180);		crPoint[2] = RGB(255, 255, 255);	crPoint[3] = RGB(255, 255, 255);	}	m_pHistogramWnd[nSeries]->AddOTFPolygon(nPoint, crPoint, 1.0f, TRUE);	UpdateThreshold(nSeries);}void RxFrameTuning::DelOTFPolygon(int nSeries){	if(nSeries < 0)		nSeries = RxGetCurSeries();	if(nSeries != RXSERIES_REF && nSeries != RXSERIES_FLT)		return;	int		nCount = m_pHistogramWnd[nSeries]->GetOTFCount();	if(nCount < 2)		return;	m_pHistogramWnd[nSeries]->RemoveOTFPolygon();	UpdateThreshold(nSeries);}void* RxFrameTuning::GetSpectrumMPR(int nSeries){	return m_pHistogramWnd[nSeries]->GetSpectrumMPR();}void* RxFrameTuning::GetSpectrum(int nSeries){	return m_pHistogramWnd[nSeries]->GetSpectrum();}void RxFrameTuning::SetWindowing(int nSeries, int nLevel, int nWidth){	m_pHistogramWnd[nSeries]->SetWindowing(nLevel, nWidth);}void RxFrameTuning::SetWindowingLevel(int nSeries, int nLevel){	m_pHistogramWnd[nSeries]->SetWindowingLevel(nLevel);}void RxFrameTuning::SetWindowingWidth(int nSeries, int nWidth){	m_pHistogramWnd[nSeries]->SetWindowingWidth(nWidth);}void RxFrameTuning::SetWindowingVisible(int nSeries, BOOL bShow){	m_pHistogramWnd[nSeries]->SetWindowingVisible(bShow);}void RxFrameTuning::GetWindowing(int nSeries, int &nLevel, int &nWidth){	nLevel = m_pHistogramWnd[nSeries]->GetWindowing()->nLevel;	nWidth = m_pHistogramWnd[nSeries]->GetWindowing()->nWidth;}BYTE* RxFrameTuning::GetWindowingTable(int nSeries){	return m_pHistogramWnd[nSeries]->GetWindowing()->byTable;}

⌨️ 快捷键说明

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