Пример #1
0
void HUandThickness()
{
	//thickness data
	string dir1(input1);//K:\sdf\volume\clean\clean\ep// D:\sdfdata\distance\rocdata
	//origion data
	string dir2(input2);//K:\sdf\volume\clean\clean\ep\rocdatao
	//skeleton data
	string dir3(input3);//K:\sdf\volume\clean\clean\ep\rocdatao
	//cout << dir1 <<endl;
	vector<string> files1;
	vector<string> files2;
	vector<string> files3;
	GetFileNameFromDir(dir1, files1);
	GetFileNameFromDir(dir2, files2);
	GetFileNameFromDir(dir3, files3);
	vector<string>::iterator iterFile1, iterFile2 = files2.begin(), iterFile3 = files3.begin();
	for (iterFile1 = files1.begin(); iterFile1 != files1.end(); iterFile1++)
	{


		iterFile1->assign(iterFile1->substr(dir1.size() + 1));
		iterFile2->assign(iterFile2->substr(dir2.size() + 1));
		iterFile3->assign(iterFile3->substr(dir3.size() + 1));
		cout << *iterFile1 << endl;
		cout << *iterFile2 << endl;
		//iterFile2++;
		int l = 0, m = 0, n = 0;
		char dst1[200], dst2[200], dst3[200];
		strcpy(dst1, (*iterFile1).c_str()); //string-->char
		strcpy(dst2, (*iterFile2).c_str());
		strcpy(dst3, (*iterFile3).c_str());
		RawImage test;
		char dir3[200] = input1;
		char dir4[200] = input2;
		char dir5[200] = input1;
		char dir6[200] = input3;
		strcat(dir3, dst1);
		strcat(dir4, dst2);
		strcat(dir5, dst1);
		strcat(dir6, dst3);
		short*orgiondata = test.readStream(dir4, &l, &m, &n);
		PIXTYPE * innerdata = new PIXTYPE[l*m*n];
		test.readImage2(innerdata, dir3, l*m*n);
		unsigned char * skeletondata = new unsigned char[l*m*n];
		test.readImage(skeletondata, dir6, l*m*n);

		float *inputo = new float[l*m*n];
		PIXTYPE *skeletondataF = new PIXTYPE[l*m*n];
		PIXTYPE *innerdataF = new PIXTYPE[l*m*n];
		PIXTYPE max = 0, min = 1000;
		for (int i = 0; i < l*m*n; i++)
		{

			PIXTYPE a = inputo[i] = (float)orgiondata[i] + 1020;
			max > a ? max = max : max = a;
			min < a ? min = min : min = a;
			PIXTYPE b = skeletondataF[i] = biglittleedian(float(skeletondata[i]));
			//if (PIXTYPE c=innerdataF[i]=biglittleedian((float)innerdata[i]))
			//{
			//	cout <<"aaa"<<endl;
			//}
			PIXTYPE c = innerdataF[i] = biglittleedian((float)innerdata[i]);
		}
		cout << max << endl;
		cout << min << endl;
		delete[]skeletondata;
		delete[]innerdata;
		delete[] orgiondata;
		Raw *thickness = new Raw(l, m, n, innerdataF, true);
		Raw *orgion = new Raw(l, m, n, inputo);
		Raw *skeleton = new Raw(l, m, n, skeletondataF);
		Raw *hu = thicknessequalHU(orgion, thickness);
		queue<Point>q;
		vector<Point> c;

		DivideRegion *dr = new DivideRegion(q, skeleton, c);
		dr->putskletoninorder();
		dr->DivideRegionv2(skeleton, hu);
		dr->DivideRegionthicknessv2(skeleton, thickness);

	}

}