Example #1
0
void CMultiSeg::ComputeSeparateness(int m,int n)
{
	double separateness = 0;
	vector<pair<int,int>> vecpairSeperatenessSmallEdge;
	for(int i = 0;i < vecvecMultiResult[m].size();i++)
	{
		int patchIndex = vecvecMultiResult[m][i];

		// connect before
		vector<int> vecConnectPatchBefore;
		for(int j = 0;j < vecvecPatchConnectFlag[patchIndex].size();j++)
		{
			if(vecvecPatchConnectFlag[patchIndex][j])
			{
				vecConnectPatchBefore.push_back(j);
			}
		}

		// disconnnect after
		vector<pair<int,int>> vecpairDisconnect;
		pair<int,int> pairsDisconnect;
		for(int j = 0;j < vecConnectPatchBefore.size();j++)
		{
			pairsDisconnect.first = patchIndex;
			pairsDisconnect.second = vecConnectPatchBefore[j];

			for(int k = 0;k < vecvecMultiResult[n].size();k++)
			{
				if(vecvecMultiResult[n][k] == vecConnectPatchBefore[j])
					vecpairDisconnect.push_back(pairsDisconnect);
			}
		}

		for(int j = 0;j < vecpairDisconnect.size();j++)
		{
			for(int k = 0;k < vecpairPatchConnection.size();k++)
			{
				if(vecpairPatchConnection[k].first == vecpairDisconnect[j].first && vecpairPatchConnection[k].second == vecpairDisconnect[j].second)
				{
					separateness += vecSmoothValue[k];
					vecpairSeperatenessSmallEdge.push_back(vecpairDisconnect[j]);
				}	
			}
		}
	}

	if(separateness > 0)
	{
		EdgeHypo edgeHypo;
		edgeHypo.begin = m;
		edgeHypo.end = n;
		edgeHypo.areaIndex = GetAreaIndex(vecvecMultiResult[m][0]);
		edgeHypo.pairPatch = vecpairSeperatenessSmallEdge;
		edgeHypo.separateness = 0;
		vecEdgeHypo.push_back(edgeHypo);
	}
}
Example #2
0
void CMultiSeg::ComputeObjectness(int m)
{
	ObjectHypo objectHypo;
	objectHypo.patchIndex = vecvecMultiResult[m];
	objectHypo.objectness = 0;
	objectHypo.areaIndex = GetAreaIndex(vecvecMultiResult[m][0]);
	objectHypo.mergeFlag = false;
	vecObjectHypo.push_back(objectHypo);
}
Example #3
0
void AGScreen::DestroyArea (AGArea *pArea)

//	DestroyArea
//
//	Destroys an area

	{
	//	Clean up

	if (pArea == m_pMouseOver)
		m_pMouseOver = NULL;
	if (pArea == m_pMouseCapture)
		{
		::ReleaseCapture();
		m_pMouseCapture = NULL;
		}

	//	Destroy and invalidate

	RECT rcRect = pArea->GetRect();
	m_Areas.RemoveObject(GetAreaIndex(pArea));
	Invalidate(rcRect);
	}