Esempio n. 1
0
void Comparador::ComparaImagens(Mat &indicacoes, Mat a, Mat b, bool simples, vector<Vaga> &vagas) {


	Mat D = Diferenca(b, a, 0.1, 1);

	VerificaEstado(D, vagas, simples, a, b);



	indicacoes = Mat::zeros(indicacoes.size(), indicacoes.type());
	for (int i = 0; i < vagas.size(); i++) {
		Scalar cor = Scalar(255, 0, 0);
		if (vagas[i].ocupada) {
			cor = Scalar(0, 0, 255);
		}
		//circle(indicacoes, vagas[i].limites., 1, cor);
		rectangle(indicacoes, vagas[i].limites, cor, -1);
	}

}
Esempio n. 2
0
int main(){
	char labelConj; // rotulo do conjunto empregado nas operacoes
	int erro;       // flag de erro na criacao dos conjuntos
	int Opcao;      // operacao escolhida pelo usuario
	Conjunto *A, *B, *C;
	elem valor, min, max;

	// conjunto A
	A = CriaConjVazio(&erro);
	if (erro){
		printf("Erro de alocacao!\n");
		exit(1);
	}

	// conjunto B
	B = CriaConjVazio(&erro);
	if (erro){
		printf("Erro de alocacao!\n");
		exit(1);
	}

	// conjunto C onde serao armazenados os resultados das operacoes
	C = CriaConjVazio(&erro);
	if (erro){
		printf("Erro de alocacao!\n");
		exit(1);
	}


	//Enquanto Opcao for diferente de SAIR.
	do {

		//Pergunta a Opcao que o usuario deseja realizar.
		scanf("%d", &Opcao);

		//Verifica qual Opcao foi escolhida.
		switch (Opcao) {

			// Opcao 1
			case INSERCAO:

				scanf("%d \n%c", &valor, &labelConj);

				if (labelConj == 'A') //insere em A
					if (Insere(valor, A) == FALSO) //se der problema
						printf(FRASE_ELEM_INVALIDO); //imprime frase
					else {
						printf("A = ");
						Imprimir(A);
					}
				else if (labelConj == 'B') // insere em B
						if (Insere(valor, B) == FALSO)
							printf(FRASE_ELEM_INVALIDO);
						else {
							printf("B = ");
							Imprimir(B);
						}
				else
					printf(FRASE_ERRO);

				break;

			// Opcao 2
			case REMOCAO:

				scanf("%d \n%c", &valor, &labelConj);

				if (labelConj == 'A') // remove de A
					if (Remove(valor, A) == FALSO) //se der problema
						printf(FRASE_ELEM_NAOENCONTRADO); //imprime frase
					else {
						printf("A = ");
						if (TestaVazio(A)) {
							printf(FRASE_CONJ_VAZIO);
						} else {
							Imprimir(A);
						}
					}

				else if (labelConj == 'B') // remove de B
					if (Remove(valor, B) == FALSO)
						printf(FRASE_ELEM_NAOENCONTRADO);
					else {
						printf("B = ");
						if (TestaVazio(B)) {
							printf(FRASE_CONJ_VAZIO);
						} else {
							Imprimir(B);
						}
					}

				else
					printf(FRASE_ERRO);

				break;

			// Opcao 3
			case MEMBRO:

				scanf("%d \n%c", &valor, &labelConj);

				if (labelConj == 'A') // procura em A
					if (Membro(valor, A) == FALSO) //se der problema
						printf(FRASE_FALSO); //imprime frase
					else
						printf(FRASE_VERDADEIRO); //imprime frase

				else if (labelConj == 'B') // procura em B
					if (Membro(valor, B) == FALSO)
						printf(FRASE_FALSO);
					else
						printf(FRASE_VERDADEIRO);
				else
					printf(FRASE_ERRO);

				break;

			// Opcao 4
			case TAMANHO:

				scanf("\n%c", &labelConj);

				if (labelConj == 'A') // verifica A
					printf("%d\n", Tamanho(A));
				else if (labelConj == 'B') // verifica B
					printf("%d\n", Tamanho(B));
				else
					printf(FRASE_ERRO);

				break;

			// Opcao 5
			case IMPRESSAO:

				printf("A = ");
				if (TestaVazio(A)) {
					printf(FRASE_CONJ_VAZIO);
				} else {
					Imprimir(A);
				}

				printf("B = ");
				if (TestaVazio(B)) {
					printf(FRASE_CONJ_VAZIO);
				} else {
					Imprimir(B);
				}

				break;

			// Opcao 6
			case MINIMO:

				scanf("\n%c", &labelConj);

				if (labelConj == 'A') { // verifica A
					min = Min(A);
					if (min == TAM) // se conjunto vazio
						printf(FRASE_CONJ_VAZIO); // imprime frase
					else
						printf("%d\n", min); //imprime frase

				} else if (labelConj == 'B') { // verifica B
					min = Min(B);
					if (min == TAM) // se conjunto vazio
						printf(FRASE_CONJ_VAZIO); // imprime frase
					else
						printf("%d\n", min); //imprime frase

				} else
					printf(FRASE_ERRO);

				break;

			// Opcao 7
			case MAXIMO:

				scanf("\n%c", &labelConj);

				if (labelConj == 'A') { // verifica A
					max = Max(A);
					if (max == TAM) // se conjunto vazio
						printf(FRASE_CONJ_VAZIO); // imprime frase
					else
						printf("%d\n", max); //imprime frase

				} else if (labelConj == 'B') { // verifica B
					max = Max(B);
					if (max == TAM) // se conjunto vazio
						printf(FRASE_CONJ_VAZIO); // imprime frase
					else
						printf("%d\n", max); //imprime frase

				} else
					printf(FRASE_ERRO);

				break;

			// Opcao 8
			case UNIAO:

				Inicializar(C);
				Uniao(A, B, C);
				if (TestaVazio(C)) {
					printf(FRASE_CONJ_VAZIO);
				} else {
					Imprimir(C);
				}

				break;

			// Opcao 9
			case INTERSECCAO:

				Inicializar(C);
				Interseccao(A, B, C);
				if (TestaVazio(C)) {
					printf(FRASE_CONJ_VAZIO);
				} else {
					Imprimir(C);
				}

				break;

			// Opcao 10
			case DIFERENCA:

				Inicializar(C);
				Diferenca(A, B, C);
				if (TestaVazio(C)) {
					printf(FRASE_CONJ_VAZIO);
				} else {
					Imprimir(C);
				}

				break;

			// Opcao 11
			case IGUAL:

				if (Igual(A, B) == FALSO)
					printf(FRASE_FALSO);
				else
					printf(FRASE_VERDADEIRO);

				break;

			// Opcao 12
			case COPIA:
				Copia(A, B);
				printf("A = ");
				if (TestaVazio(A)) {
					printf(FRASE_CONJ_VAZIO);
				} else {
					Imprimir(A);
				}

				printf("B = ");
				if (TestaVazio(B)) {
					printf(FRASE_CONJ_VAZIO);
				} else {
					Imprimir(B);
				}

				break;

			// Opcao 13
			case SAIR:
				Libera(A);
				Libera(B);
				Libera(C);

				break;
		}

	} while (Opcao != SAIR);

	return (0);
}