Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void imag_com_mais_blobs(BLOBS *b, IMAGEM *im)
- {
- b = (BLOBS *)malloc(sizeof(BLOBS));
- int max_blobs = 0;
- if (im->blobs > max_blobs)
- {
- max_blobs = im->blobs;
- strcpy(im->im_mais_blobs, im->nome_imagem);
- }
- }
- int LerFicheiro(char *fi, LISTAIMG *LImag,int R,int G,int B,int d) // fi é variável para o nome do ficheiro
- {
- int i, j, nC, nL, ncanais;
- FILE *f;
- PIXEL *p;
- PIXEL **m;
- IMAGEM *Imag;
- BLOBS *b;
- ELEMENTOZONA *e;
- e = (ELEMENTOZONA *)malloc(sizeof(ELEMENTOZONA));
- b = (BLOBS *)malloc(sizeof(BLOBS));
- Imag = (IMAGEM *)malloc(sizeof(IMAGEM));
- p = (PIXEL *)malloc(sizeof(PIXEL));
- f = fopen(fi, "r"); // abre um ficheiro qualquer
- if (f == NULL) return NULL;
- while (!feof(f))
- {
- system("cls");
- printf("A analisar imagemnn");
- Imag = criar_imagem();
- fscanf(f,"%s", &Imag->nome_imagem);
- if (feof(f))
- {
- free(Imag);
- break;
- }
- fscanf(f, "%d", &Imag->NLINHAS);
- fscanf(f, "%d", &Imag->NCOLUNAS);
- fscanf(f, "%d", &Imag->NCANAIS);
- calcular_zonas(&Imag, R, G, B, d);
- Imag->proximo = LImag->inicio;
- LImag->inicio = Imag;
- b = Imag->inicio;
- while (b)
- {
- det_media(Imag, b);
- det_desvio_padrao(Imag, b);
- b = b->proximo;
- imag_com_mais_blobs(b, Imag);
- }
- }
- fclose(f);
- return INSUCESSO;
- void main()
- {
- setlocale(LC_CTYPE, "portuguese");
- char f[20];
- LISTAIMG *Limg;
- Limg = criarlista();
- int i, j, R, G, B, d, linha, coluna, zona;
- int opcao;
- IMAGEM *aux;
- BLOBS *b;
- b = (BLOBS *)malloc(sizeof(BLOBS));
- do
- {
- opcao = Menu();
- switch (opcao)
- {
- case 2:
- {
- aux = Limg->inicio;
- while (aux)
- {
- b = aux->inicio;
- printf("nnome da imagem:%s nnúmero de blobs:%dnn", aux->nome_imagem, aux->blobs);
- system("pause");
- while (b)
- {
- printf("nmédia do blob:n");
- printf("média R: %.2fn", b->mediaR);
- printf("média: %.2fn", b->mediaG);
- printf("média: %.2fn", b->mediaB);
- printf("ndesvio padrão do blob:n");
- printf("desvio padrão R: %.2fn", b->desv_padraoR);
- printf("desvio padrão: %.2fn", b->desv_padraoG);
- printf("desvio padrão: %.2fn", b->desv_padraoB);
- b = b->proximo;
- }
- printf("nna imagem com mais blobs é: %S nnn", aux->im_mais_blobs);
- system("pause");
- aux = aux->proximo;
- }
- case 5:
- break;
- default:printf("nOpcao invalida!nn");
- break;
- }
- system("pause");
- system("cls");
- } while (opcao != 5);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement