第三周工作总结
来源:互联网 发布:合肥市行知学校前身 编辑:程序博客网 时间:2024/05/14 07:40
# 第三周工作总结
这种的任务是实现两个表的对接:一个表的是SHREC13_SBR_Model.cla,一个表是SHREC13_SBR_Sketch_Test.cla,
两个表之间的连接点在于模型的名字,也是两者的共同点。-
**1.先将各自的数据都存入在结构体中**-
void getModelTraining(string filepath, std::vector<std::string>& p){ifstream testFile(filepath);if (!testFile){cout << "eorr:" << filepath << endl;}float feature;//存储每行的数据int sizeIntTemp;string temp;getline(testFile, temp);getline(testFile, temp);stringstream stringin;while (!testFile.eof()){//m M;modelNode M;getline(testFile, temp);testFile >> temp; //nameif (temp.empty()){break;}M.Aname = temp;//cout << "name:" << M.Name << endl;testFile >> sizeIntTemp;//unKnowtestFile >> sizeIntTemp;//sizeM.Asize = sizeIntTemp;//cout << "size:" << M.msize << endl;for (int i = 0; i < sizeIntTemp; i++){testFile >> feature;M.Adata.push_back(feature);}for (vector<int>::size_type i = 0; i != (M.Adata.size() - 1); i++){//cout << "M.data:" << M.data[i] << endl;}oneModelTab.oneModel.push_back(M);}testFile.close();
**2.使用迭代器遍历结构体**-
typedef struct modelNode {string Aname;int Asize;vector<int> Adata;}Amodel;typedef struct ModelTable{vector<modelNode> oneModel;};ModelTable oneModelTab;ModelTable skecthTab;
**3.数据对接,如名字相同时,得到结构体内的数据**
string model_name ;cout << "input your want model_name:" << endl;while (cin >> model_name){auto iter = skecthTab.oneModel.begin();for (; iter != skecthTab.oneModel.end(); ++iter){if (model_name == iter->Aname){cout << "model_name对应的图集:" << endl;for (int i = 0; i < iter->Asize; i++){cout << iter->Adata[i] << endl;}break;}}if (iter == skecthTab.oneModel.end()){cout << "没找到相同名字,重新输入:" << endl;continue;}break;}
**4.实现通过m.off找到它对应模型的草图**-
void getTrainingSetImage( const string targetmesh, std::vector<std::string>& r){string AssetName ;string s1;//cout << targetmesh << "的图集是: " << endl;auto iter = skecthTab.oneModel.begin();for (; iter != skecthTab.oneModel.end(); ++iter){AssetName = iter->Aname;if (AssetName == targetmesh){for (int i = 0; i < iter->Asize; i++){//GetModelPng(sketchTesr);int aa = iter->Adata[i];char c[8];sprintf_s(c, "%d", aa);s1 = c;string imagePath = "F:/Sketch3D/Sketch3DToolkit-master/matlab/dataset/others/SHREC13_SBR_TESTING_SKETCHES/" + targetmesh + "/test/" + s1 + ".png" ;r.push_back(imagePath);//cout << "F:/Sketch3D/Sketch3DToolkit-master/matlab/dataset/others/SHREC13_SBR_TESTING_SKETCHES/" + targetmesh + "/test/" + s1 + ".png" << endl;//cout << imagePath << endl;}}}}
**5.实现单个模型分别存储得到的草图**-
这个函数跟下面的存储全部模型草图的方法差不多,只不过是模型名字不一致,一开始是通过模型的mxx.off来找到模型,再通过模型名字找到草图表中的对应模型的png图片
**6.存储全部模型的草图**
ViewIndexer view_indexer;unique_ptr<BatchMeshWindow> main_window_ptr = initGLContext();vector<ViewInfo> view_info_vector;
GetModelPng(sketchTesr);//sketchTesr是草图表
string target_mesh;std::vector<std::string> target;vector<std::string> target_sketch_vector; getModelTraining(ModelCla,target);//遍历SHREC13_SBR_Sketch_Test.cla,输入模型名字,便能得到模型名字对应的.png文件, for (auto i = target.begin(); i != target.end(); ++i) { target_mesh = *i;//得到的所有模型的名字 getTrainingSetImage(target_mesh, target_sketch_vector);//将得到的模型路径传给target_sketch_vector for (auto iter = oneModelTab.oneModel.begin(); iter != oneModelTab.oneModel.end(); ++iter) { if (target_mesh == iter->Aname) { for (int i = 0; i < iter->Asize; i++) { char c[8]; int aa = iter->Adata[i]; sprintf_s(c, "%d", aa); s1 = c; target_mesh = "F:/Sketch3D/Sketch3DToolkit-master/matlab/dataset/SHREC13_SBR_TARGET_MODELS/models/m" + s1 + ".off"; cout << "[info]: Sampling mesh viewpoints." << endl; vector<ViewInfo> view_info_vector = sampleMeshViewpoints(target_mesh, *main_window_ptr); //生成草图的png图片和.xf文件(包含草图的顶点信息) } } } }
阅读全文
0 0
- 第三周工作总结
- 第三周工作总结
- 第三周工作总结及计划表
- 实验室第三周周工作总结
- 工作总结第三十一/三十三
- 创新实验室实习生每周工作总结【实习第三周】
- 第三周工作总结——IBeacon协议分析
- 周工作总结
- 周工作总结
- 实习第一周到第三周工作总结(2013.10.8-2013.10.27)
- 工作总结之引用第三方库
- 第二周工作总结
- 周工作总结 一
- 周工作总结 二
- 这周工作总结
- 前2周工作总结
- 第六周工作总结
- 第七周工作总结
- protobuf3在php中的使用
- 【Zookeeper】1.什么是Zookeeper
- redis持久化RDB和AOF
- 4152: [AMPPZ2014]The Captain
- android远程服务
- 第三周工作总结
- 简单LinuxC程序关于倒置句子中的单词位置(字符串逆序应用)
- WUST 1946 繁忙的都市(最小生成树+克鲁斯卡尔算法)
- 【USACO】山峰暸望
- Git基本知识-基本操作
- 第七章 使用prototype Cell定制Table View(一)
- HDU 3873 Invade the Mars (dijkstra变形)
- hdu 1025 Constructing Roads In JGShining's Kingdom
- Leetcode 416. Partition Equal Subset Sum