Beispiel #1
0
int MaskNode::Dispatch(LPCTSTR func, int nArg, LPCTSTR strArg, void* arg, void* ret) {
	if (0 == _tcsicmp(_SC("ApplyMask"), func) && arg) {
		MaskRenderArgs* maskArgs = (MaskRenderArgs*)arg;
		ApplyMask(maskArgs->appliedNode, maskArgs->g, maskArgs->rect);
		return 0;
	}
	return -1;
}
Beispiel #2
0
// D=D^S, D=D & Mask, D=D^S	--> if (Mask==1) D else S
BOOL KDDBMask::TransBlt(HDC hdcDest, int nDx0, int nDy0, int nDw, int nDh,
						HDC hdcSrc,  int nSx0, int nSy0, int nSw, int nSh)
{
	StretchBlt(hdcDest, nDx0, nDy0, nDw, nDh, hdcSrc, nSx0, nSy0, nSw, nSh, SRCINVERT);		// D^S
	
	ApplyMask(hdcDest, nDx0, nDy0, nDw, nDh, SRCAND);	// if trans D^S else 0

	return StretchBlt(hdcDest, nDx0, nDy0, nDw, nDh, hdcSrc, nSx0, nSy0, nSw, nSh, SRCINVERT);	// if trans D else S
}
Beispiel #3
0
BOOL KDDBMask::TransBlt_FlickFree(HDC hdcDest, int nDx0, int nDy0, int nDw, int nDh,
								  HDC hdcSrc,  int nSx0, int nSy0, int nSw, int nSh)
{
	StretchBlt(hdcSrc, nSx0, nSy0, nSw, nSh, 
		       hdcDest, nDx0, nDy0, nDw, nDh, SRCINVERT); // D^S

	ApplyMask(hdcSrc, nSx0, nSy0, nSw, nSh,	0x220000); // if trans 0 else D^S

	return StretchBlt(hdcDest, nDx0, nDy0, nDw, nDh, 		// if trans D else S
		hdcSrc, nSx0, nSy0, nSw, nSh, SRCINVERT);
}
Beispiel #4
0
void TSymptom::Process()
{
	awpImage* pbg = m_background.GetImage();
	awpImage* pcr = m_current.GetImage();

	awpImage* pdf = m_diff.GetImage();
	awpImage* pbn = m_binary.GetImage();
	awpImage* pbns = m_binary_source.GetImage();


	_awpZeroImage(pbn);
	_awpZeroImage(pbns);
	_awpZeroImage(pdf);
	if (pbg == NULL || pcr == NULL || pdf == NULL || pbn == NULL)
		return;
	if (pbg->sSizeX != pcr->sSizeX || pbg->sSizeY != pcr->sSizeY)
		return;
	//вычисление разницы между полученным изображением и эталонным. 
	AbsDiff();
	if (m_NumFrames < m_NumFramesToTraining)
		return;
	//нахождение бинарного изображения 
	_awpAdaptiveThreshold(pdf, pbns);
	::awpCopyImage(pbns, &pbn);
	_awpNoiseRemove(pbns);
	//awpGaussianBlur(pbns, pbn,2);
#ifdef _DEBUG
	m_background.SaveImage("background.jpg");
	m_current.SaveImage("Current.jpg");
	m_diff.SaveImage("diff.jpg");
	m_binary.SaveImage("binary.jpg");
	m_binary_source.SaveImage("binary_source.jpg");
#endif 
	//	 сопровождение найденных объектов
	for (int i = 0; i < m_BLOBs.GetCount(); i++)
	{
		TLFBLOBObject* bo = (TLFBLOBObject*)m_BLOBs.Get(i);
		bo->TrackBLOB(NULL);
	}
	//	 вычисление интегрального изображения. 
	// todo: удаление областей на бинарном изображении, занятых объектами. 
	ApplyMask(pbn);
	// анализ полученного бинарного изображения 
	// нахождение новых объектов
	Analysis(NULL);
}
Beispiel #5
0
valarray<pair<double,double>> COIT3Row::GetMaskedDataError()
{
	return ApplyMask(m_flag, m_t3_data_err);
}
Beispiel #6
0
valarray<complex<double>> COIT3Row::GetMaskedData()
{
	return ApplyMask(m_flag, m_t3_data);
}