cfsl 0 Denunciar post Postado Maio 29, 2006 Ola Pessoal.... eu não entendo muito de C, mas to precisando fazer um projetinho para fazer equalização de imagem usando C e OpenGl, para fazer isso encontrei um código que gera o histograma de uma imagem, mas na hora que eu vou copilar ta dando 2 erros iguais em 2 FOR do código. O erro que esta aparecendo é o seguinte : "parse error before "for" " alguem sabe o que quer dizer esse erro??? segue o código do programa : //Mostra o diagrama da figura mostrando a tonalidade das cores quanto mais//escura mais perto da esquerda quanto mais clara mais perto da direita //Define o vetor[255][2] onde: // X variavel qualquer //vetor[X][0] onde se armazena o valor verdadeiro da quantidade de cores na figura //vetor[X][1] porcentagem do valor do vetor[X][1] int vetor[255][2]; //FOR para Zerar o vetor[X][Y] for(y=1;y<255;y++) { //Zera valores de vetor[Y][0] vetor[y][0]=0; }//Primeiro FOR que armazena no vetor[X][0] os valores reais da quantidade de repetição das cores! for(y=1; y<imagem1->h-1; y++) { for(x=1; x<imagem1->w -1; x++) { //Adiciona dado determinada cor numa determinada Posiçao ex: //Coloca na posiçao 0 a cor de valor 0 //Coloca na posiçao 255 a cor de valor 255 //e assim vai vetor[imagem1->line[y][x]][0]=vetor[imagem1->line[y][x]][0]+1; } }//Agora pegaremos os valores do maior para a criação da porcentagem!!! int maior=0; //Ele irá correr o vetor que irá criar o histograma for(x=0;x<255;x++) { //SE que verifica se o valor eh maior que a variavel maior if(vetor[x][0]>maior) { //Se for maior colocar o valor do vetor[X][0] na variavel maior maior=vetor[x][0]; }} //Agora esse FOR irá criar a porcentagem para os valores com base no valor maior for(x=0;x<255;x++) { //Regra de Três para a criação da porcentagem vetor[x][1]=(vetor[x][0]*100)/maior; } //Esse for agora irá criar o Histograma, mas houve um problema ele gerou o histograma de cabeça para baixo assim para treinar mais fiz logo apos esse for como se faz a inversão for(y=1; y<imagem2->h; y++){ for(x=0; x<imagem2->w; x++) { //Esse IF cria uma linha correspondente à uma das cores da figura começando do 0 até o 255 //se for uma das linhas coloque branco if(y<(vetor[x][1]))c=255; //se não coloque preto else { c=0; }//Coloque o resultado na imagem 3imagem3->line[y][x] = (unsigned char)c; }} //As barras verticais representam a quantidade de cores //AGORA EU FAÇO A INVERSAO DE CIMA PARA BAIXO for(y=0; y<imagem2->h; y++){//399 x for(x=0; x<imagem2->w; x++)//249 y { //COLOCANDO O HISTOGRAMA NA POSIÇAO CERTAimagem2->line[(imagem2->h-1)-y][x]=imagem3->line[y][x]; }} Se alguem puder me ajudar eu agradeço Valeu Compartilhar este post Link para o post Compartilhar em outros sites
skimo-solar 0 Denunciar post Postado Maio 30, 2006 "parse error before "for" "Significa que o erro não está no for, e sim antes dele.Dê uma checada na parte anterior ao local onde ocorreram os erros. Procure por alguns ; que possam ter sido esquecidos... E lembre-se sempre, só se podem declarar variáveis no início do programa, caso contrário haverá um erro. Compartilhar este post Link para o post Compartilhar em outros sites
gh0st 0 Denunciar post Postado Junho 6, 2006 Os comentarios deixam tudo confuso. Talvez eles ate mesmo estejam causando os erros... verifique se nenhum deles ultrapassa 1 linha no seu codigo (aqui eles ultrapassam), pois isso pode estar causando o erro. Se quiser comentar codigo em C/C++ com varias linhas, use /* comment */ Compartilhar este post Link para o post Compartilhar em outros sites