VoteDialog::VoteDialog(QList<Player *> allPlayers, QList<int> ePlayers, QWidget *parent) : QDialog(parent), ui(new Ui::VoteDialog) { ui->setupUi(this); this->setModal(true); QScroller::grabGesture(ui->scrollArea->viewport(), QScroller::LeftMouseButtonGesture ); needRevoting = false; condemned.resize(ePlayers.size()); exposedPlayers = ePlayers; players = allPlayers; int maxVotes = 0; for (int i = 0; i < players.size(); i++) if (players[i]->isAlive) maxVotes++; for (int i=0; i <= maxVotes;i++) numberOfPlayers.push_back(QString("%1").arg(i)); for (int i = 0; i < exposedPlayers.size(); i++) { QLabel* label = new QLabel(this); label->setText(QString("<html><head/><body><p><span style=\" font-size:22pt;\">For %1 player</span></p></body></html>").arg(exposedPlayers[i])); comboBoxes.push_back(new QComboBox(this)); comboBoxes.back()->setMinimumHeight(100); comboBoxes.back()->setMinimumWidth(100); comboBoxes.back()->addItems(numberOfPlayers); comboBoxes.back()->setFont(QFont("Times",22)); connect(comboBoxes[i],SIGNAL(currentTextChanged(QString)),this, SLOT(voting(QString))); ui->votesLayout->addWidget(comboBoxes.back()); ui->labelsLayout->addWidget(label); } for (int i = 0; i < comboBoxes.size(); i++) connect(comboBoxes[i],SIGNAL(currentIndexChanged(QString)),this,SLOT(calculate())); }
void classify(){ cv::HOGDescriptor hog, hog2; cv::Mat image, im; std::string name; const cv::Size trainingPadding = cv::Size(0,0); const cv::Size winStride = cv::Size(8,8);//Strid 16= no overlap std::vector<cv::Point> locations; std::vector<float> featureVector, featureVector2; std::vector<int> voting(3); CvSVM SVM_pen, SVM_scissors, SVM_pen_scissors; float classification_result1, classification_result2, classification_result3; cv::Mat circle= cv::Mat::zeros(cv::Size(RES_X,RES_Y),CV_8U); int thickness=-1, lineType=8; int max; cv::circle(circle, cv::Size(circle.cols/2, circle.rows/2),circle.rows/2, 255, thickness, lineType ); //filling vector for voting std::fill( voting.begin(), voting.end(), 0 ); hog.blockSize= cv::Size(16,16); hog.winSize= cv::Size(RES_X,RES_Y); hog.blockStride=cv::Size(8,8); hog.cellSize= cv::Size(8,8); hog2.blockSize= cv::Size(16,16); hog2.winSize= cv::Size(RES_X,RES_Y); hog2.blockStride=cv::Size(8,8); hog2.cellSize= cv::Size(16,16); //Loading support vector machines SVM_scissors.load("svm_scissors"); SVM_pen.load("svm_pen"); SVM_pen_scissors.load("pen_scissors_svm"); image=extracted_image; cv::resize(image, im, cv::Size(RES_X,RES_Y)); im.copyTo(image, circle); //Finding features hog.compute(image, featureVector, winStride, trainingPadding, locations); hog2.compute(image, featureVector2, winStride, trainingPadding, locations); cv::Mat features(1, featureVector.size(), CV_32F); cv::Mat features2(1, featureVector2.size(), CV_32F); for(int j=0; j<featureVector.size(); j++){ features.at<float>(0,j)= featureVector.at(j); } for(int j=0; j<featureVector2.size(); j++){ features2.at<float>(0,j)= featureVector2.at(j); } //Evaluating features in the support vector machine classification_result1= SVM_scissors.predict(features); classification_result2= SVM_pen.predict(features); classification_result3= SVM_pen_scissors.predict(features2); std::cout<<"Output of scissors classifier:"<<classification_result1<<std::endl; std::cout<<"Output of pen classifier:"<<classification_result2<<std::endl; std::cout<<"Output of scissors/pen classifier:"<<classification_result3<<std::endl; //Deciding the classification result classification_result3= SVM_pen_scissors.predict(features2); if( classification_result3==1){ classification_result1= SVM_scissors.predict(features); if(classification_result1==1) { std::cout<<"IT IS A SCISSORS."<<std::endl; c= SCISSORS; } else{ std::cout<<"IT IS NEITHER A SCISSOPRS NOR A PEN"<<std::endl; c= NO_IDENTIFIED; } } else { classification_result2= SVM_pen.predict(features); if(classification_result2==1) { std::cout<<"IT IS A PEN."<<std::endl; c= PEN; } else{ std::cout<<"IT IS NEITHER A SCISSORS NOR A PEN."<<std::endl; c= NO_IDENTIFIED; } } }
/**MAIN FUNCTION**/ void main() { /** LOCAL VARIABLES DECLARATION **/ unsigned char x; sys_init(); while(1) { cmd_lcd(0X01); cmd_lcd(0X80); display_lcd("Waiting For Card...."); i=0; r_flag=0; while(!r_flag); if(!(strcmp(buff,"Enter password:"******"card is inserted"); cmd_lcd(0xc0); display_lcd("Processing......"); delay_ms(500); print("AAA\n");//SENDING PASSWORD r_flag=0; while(!r_flag);//WAITING FOR REPLY cmd_lcd(0xc0); i=0; r_flag=0; display_lcd(buff); while(!r_flag);//WAITING FOR REPLY cmd_lcd(0x94); display_lcd(buff); print("READ 32 5\n"); //READ DATA FROM SMARTCARD r_flag=0; while(!r_flag);//WAITING FOR REPLY cmd_lcd(0x01); display_lcd(buff); delay_ms(500); if(!(strcmp(buff,s_pass1))) { cmd_lcd(0x80); display_lcd("* UR CARD IS VALID *"); for(n=0;n<5;n++) { green=1; delay_ms(100); green=0; delay_ms(100); } cmd_lcd(0x94); display_lcd("Pls remove Card....."); r_flag=0;i=0;buff[0]='\0'; while(!r_flag);//WAITING FOR REPLY cmd_lcd(0xc0); display_lcd(buff); delay_ms(700); m: cmd_lcd(0x01); cmd_lcd(0x80); display_lcd("1: PAN CARD INFO."); cmd_lcd(0xC0); display_lcd("2: ATM TERMINAL "); cmd_lcd(0x94); display_lcd("3: VOTING SYSTEM "); cmd_lcd(0xd4); display_lcd("4: EXIT "); do { x=key(); //WAITINF FOR KEY PRESSING }while((x!='1')&&(x!='2')&&(x!='3')&&(x!='4')); if(x=='1') pancard_info(); //PERSONAL INFROMATION else if(x=='2') atm_terminal(); else if(x=='3') voting(); //VOTING CARD SYSTEM else if(x=='4') continue; goto m; } else if(!(strcmp(buff,s_pass2))) { cmd_lcd(0x80); display_lcd("* UR CARD IS VALID *"); for(n=0;n<5;n++) { green=1; delay_ms(100); green=0; delay_ms(100); } cmd_lcd(0x94); display_lcd("Pls remove Card....."); r_flag=0;i=0;buff[0]='\0'; while(!r_flag);//WAITING FOR REPLY cmd_lcd(0xc0); display_lcd(buff); delay_ms(700); reset_voting(); } else { cmd_lcd(0x80); display_lcd("*UR CARD IS INVALID*"); for(n=0;n<5;n++) { buzzer=1; delay_ms(100); buzzer=0; delay_ms(100); } cmd_lcd(0x94); display_lcd("Pls remove Card."); r_flag=0; while(!r_flag);//WAITING FOR REPLY cmd_lcd(0xc0); display_lcd(buff); delay_ms(700); } } else { cmd_lcd(0x01); cmd_lcd(0x80); display_lcd("PLEASE INSERT CARD"); cmd_lcd(0xC0); display_lcd(" PROPERLY "); delay_ms(1000); cmd_lcd(0x01); cmd_lcd(0x94); display_lcd("Pls Remove Card....."); r_flag=0; while(!r_flag); cmd_lcd(0xd4); display_lcd(buff); delay_ms(500); } } //main while loop end } //main loop end