Пример #1
0
QVector<QVector<double>> transpose(QVector<QVector<double>> a)
{
        int m = a.size();
        int n = a.front().size();
        QVector<double> r(m);
        QVector<QVector<double>> aT(n,r);
        for(int i = 0; i < m; i++)
        {
            for(int j = 0; j < n; j++)
            {
                aT[j][i]=a[i][j];
            }
        }
        return aT;
}
Пример #2
0
void MainWindow::FilterBySymSize()
{
	int s=aSyms.Size();
	int nS=s;

	TCL::Array<TCL::Array<TIL::GrayImage>> aT(s);
	for (int i=0; i<s; i++)
	{
		aT[i].Resize(aSyms[i].Size());
		for (int j=0; j<aSyms[i].Size(); j++)
		{
			aT[i][j].Copy(aSyms[i][j]);
		}
	}

	TCL::Array<bool> &aDel=aBad;
	aDel.Resize(s);
	aDel.Fill(false);

	for (int i=0; i<s; i++)
	{
		int nProper=0;
		for (int j=0; j<aT[i].Size(); j++)
		{
			if (aT[i][j].Height()>aT[i][j].Width()*symsratio)
			{
				nProper++;
			}
		}

		int VERYVERYVERYMAJIC=10;

		if ((nProper<nSyms)||(nProper>VERYVERYVERYMAJIC))
		{
			aDel[i]=true;
			nS--;
		}		
	}

	//aSyms.Resize(nS);
	//nS=0;
	//for (int i=0; i<s; i++)
	//{
	//	if (!aDel[i])
	//	{
	//		aSyms[nS].Resize(aT[i].Size());
	//		for (int j=0; j<aT[i].Size(); j++)
	//		{
	//			aSyms[nS][j].Copy(aT[i][j]);
	//		}
	//		nS++;
	//	}
	//}

	//for (int i=s-1; i>=0; i--)
	//{
	//	if (aDel[i])
	//	{
	//		aSyms.Remove(i);
	//	}
	//}

	


}