Esempio n. 1
0
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;
			}
		}
	}
Esempio n. 3
0
/**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