int Match(Player p,FONT *font3) { BITMAP *end_=0; FILE *fp=fopen("ending.txt", "r"); if(fp==0) { printf("The file didn't open.\n"); return 0; } while(!feof(fp)) { int de=0; char ch=' ',com=' ',rules[30]=" ",attribute[18]="",condition[18]=""; fscanf(fp,"%s",rules); if(feof(fp))break; while(ch!='\n') { if(feof(fp))break; if(ch=='(' && de==0) { if(feof(fp))break; fscanf(fp,"%s %c %s",attribute,&com,condition); condition[strlen(condition)-1]='\0'; if(Rematch(p,attribute,com,condition)==0) { de=1; } } fscanf(fp,"%c",&ch); } if(de==0) { rule(&end_,rules); textprintf_ex(screen, font3, 50, 25,makecol(0,0,0), makecol(255,255,255),"You become a %s",rules); rest(10000); Write_Story(rules,p.name); destroy_bitmap(end_); return 1; } } rule(&end_,"nobody"); textprintf_ex(screen, font3, 50, 25,makecol(0,0,0), makecol(255,255,255),"You become nobody"); Write_Story("nobody",p.name); rest(10000); return 1; }
void CStereoMatching::MatchOneLayer(cv::Mat disparity[], int Pyrm_depth) { if (Verbose>=1) printf("\tprocessing layer %d...\n",Pyrm_depth); clock_t start = clock(); cv::Mat image[2], mask[2]; cv::Mat image_inv[2], mask_inv[2]; image[0] = m_data->imagePyrm[Pyrm_depth][0]; image[1] = m_data->imagePyrm[Pyrm_depth][1]; mask[0] = m_data->maskPyrm[Pyrm_depth][0]; mask[1] = m_data->maskPyrm[Pyrm_depth][1]; image_inv[0] = image[1]; image_inv[1] = image[0]; mask_inv[0] = mask[1]; mask_inv[1] = mask[0]; FindMargin(margin[0], m_data->maskPyrm[Pyrm_depth][0]); FindMargin(margin[1], m_data->maskPyrm[Pyrm_depth][1]); if (Pyrm_depth == 0) { LowestLevelInitialMatch(image, mask, disparity[0], true); LowestLevelInitialMatch(image_inv, mask_inv, disparity[1], false); } else { HighLevelInitialMatch(image, mask, disparity[0], Pyrm_depth, true); HighLevelInitialMatch(image_inv, mask_inv, disparity[1], Pyrm_depth, false); } // DisparityToCloud<short>(disparity[0], mask[0], Q, 0, true, 10); // m_data->SaveMat(disparity[0], "disparity0.dat"); // m_data->SaveMat(disparity[1], "disparity01.dat"); SmoothConstraint(disparity[0], true); SmoothConstraint(disparity[1], false); // DisparityToCloud<short>(disparity[0], mask[0], Q, 0, true, 11); //m_data->SaveMat(disparity[0], "disparity1.dat"); //m_data->SaveMat(disparity[1], "disparity11.dat"); OrderConstraint(disparity[0], true); OrderConstraint(disparity[1], false); //m_data->SaveMat(disparity[0], "disparity2.dat"); //m_data->SaveMat(disparity[1], "disparity21.dat"); UniquenessContraint<short>(disparity); //m_data->SaveMat(disparity[0], "disparity3.dat"); //m_data->SaveMat(disparity[1], "disparity31.dat"); // MedianFilter(disparity[0], mask[0], 1, true); // MedianFilter(disparity[1], mask[1], 1, false); Rematch(image, mask, disparity[0], true); Rematch(image_inv, mask_inv, disparity[1], false); // SmoothConstraint(disparity[0], true); // SmoothConstraint(disparity[1], false); // OrderConstraint(disparity[0], true); // OrderConstraint(disparity[1], false); UniquenessContraint<short>(disparity); //m_data->SaveMat(disparity[0], "disparity4.dat"); //m_data->SaveMat(disparity[1], "disparity41.dat"); MedianFilter(disparity[0], mask[0], 1, true); MedianFilter(disparity[1], mask[1], 1, false); // m_data->SaveMat(disparity[0], "disparity50.dat"); // m_data->SaveMat(disparity[1], "disparity51.dat"); // DisparityToCloud<short>(disparity[0], mask[0], Q, Pyrm_depth, true, 11+10*Pyrm_depth); int iteration = 30+Pyrm_depth*30; // clock_t part = clock(); DisparityRefine(disparity[0], image, iteration, true); DisparityRefine(disparity[1], image_inv, iteration, false); // printf("\ttime: %.3f s\n", double(clock()-part)/1e3); // disparity[0].convertTo(disparity[0],CV_64FC1); // disparity[1].convertTo(disparity[1],CV_64FC1); // m_data->SaveMat(disparity[0], "disparity6.dat"); // m_data->SaveMat(disparity[1], "disparity61.dat"); // char filename[512]; // sprintf(filename, "disparity%d_0.dat", Pyrm_depth); // m_data->SaveMat(disparity[0], filename); // sprintf(filename, "disparity%d_1.dat", Pyrm_depth); // m_data->SaveMat(disparity[1], filename); UniquenessContraint<double>(disparity); // m_data->SaveMat(disparity[0], "disparity70.dat"); printf("\ttime: %.3f s\n", double(clock()-start)/1e3); }