1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Quantidade de brancos de uma imagem - AJUDA

Discussão em 'Programação' iniciada por Xtl, 12 de Novembro de 2008. (Respostas: 26; Visualizações: 1413)

  1. Xtl

    Xtl

    Boas a todos.

    Gostaria de saber se existe algum programa que me diga a quantidade de brancos ou "luminosidade" que uma imagem tem.
    [​IMG]

    POr exemplo nesta imagem, qual a percentagem de brancos é que tem...

    Muito obrigada
     
  2. sapropel

    sapropel Power Member

    não disseste em que linguagem por isso vou assumir C++
    de raiz não consegues fazer isso, precisas de uma biblioteca que suporte esse tipo de operações (ou podes fazer uma tu :P).

    aconselho a SFML: www.sfml-dev.org
    basicamente abres a imagem, lês todos os pixels e vês se é branco, se for adicionas a contagem.

    Código:
    sf::Image img = Image.LoadFromFile( "imagem.jpg" );
    for( int i = 0; i < IMG_HEIGHT; i++ )
    {
      for( int j = 0; j < IMG_LENGHT; j++ )
      {
        sf::Color temp = img.GetPixel( i, j ); //aqui recebes a cor do pixel corrente.
        if( temp == sf::Color::White )  //White é uma membro estatico publico já predefinido.
          contagem++;
      }
    }
    feito em cima do joelho, mas já deve dar uma ideia de como fazer. agora é adptares ao que quiseres, meter percentagens, devolver o resultado, etc, etc

    EDIT: se quiseres em .NET ou java é ainda mais facil visto que ambas têm bibliotecas para esse tipo de operações de origem na framework. a maneira é a mesma, só muda é o nome das classes e métodos a usar.
     
    Última edição: 12 de Novembro de 2008
  3. Xtl

    Xtl

    Muito obrigada sapropel, mas provavelmente não devo ter colocado o post no sitio certo, porque programação para mim é chinês :sad:.
    Fui ao site que disseste, esforcei-me mas não percebi nada.....

    Não há nada nehum programa já feito, não?:005:
    Oh céus!
     
  4. metRo_

    metRo_ Power Member

    Por curiosidade usei essa biblioteca só mesmo para testar, estou a usar o Dev-C++, mas estou com problemas ao compilar.
    Copiei a pasta para o include do Dev-C++ e tambem os ficheiros *.a que eles mandam copiar para o Lib do Dev-C++.

    PHP:
    #include <SFML-1.3/include/SFML/System.hpp>
    #include <iostream>

    using namespace std;
    using namespace sf;

    int main()
    {
        
    sf::Clock Clock;
        while (
    Clock.GetElapsedTime() < 5.f)
        {
            
    std::cout << Clock.GetElapsedTime() << std::endl;
            
    sf::Sleep(0.5f);
        }

        return 
    0;
    }
    Isto é um exemplo deles e os erros são:
    E:\Users\ee06091\AppData\Local\Temp\ccCAcaaa.o(.text+0x131) In function `main':
    [Linker error] undefined reference to `sf::Clock::Clock()'
    [Linker error] undefined reference to `sf::Clock::GetElapsedTime() const'
    [Linker error] undefined reference to `sf::Clock::GetElapsedTime() const'
    [Linker error] undefined reference to `sf::Sleep(float)'
    E:\Users\ee06091\AppData\Local\Temp\ccCAcaaa.o(.text+0x131) ld returned 1 exit status
     
  5. celestinoxp

    celestinoxp Suspenso

    tenhu uma sugestão, ja que o homem nao sabe programar,
    e k tal apresentarem aqui o executável depois de pronto com uma caixa do tipo "Escolha a imagem" e o butão procurar, depois o programa mostra o "nº de brancos".... é só uma sugestão... lol...
     
  6. Xtl

    Xtl

    Primeiro de tudo não é homem.... é mulher.... ehhee:P

    Isso era ouro sobre azul, mas nem tenho coragem de pedir isso....
    :rolleyes:
     
  7. metRo_

    metRo_ Power Member

    Isso de dizer que és mulher é a mesma coisa que dizeres "façam lá isso..." :)

    Em relação ao meu erro, nada?
     
  8. Xtl

    Xtl

    metRo_, não tem nada a ver com o ser mulher , façam lá isso... o celestinoxp é que escreveu "ja que o homem nao sabe programar".

    E já percebi que ainda não existe nenhum software para fazer isso... e como não vou aprender a programar de um dia para o outro... Aliás a minha profissão também não tem nada a ver com programação..... Era só para saber se alguém sabia se havia ou não esse tal software.... ;)
     
  9. metRo_

    metRo_ Power Member

    Estava a brincar....

    Depois de andar lá adicionar os caminhos, etc, os erros são estes:

    Permission denied
    ld returned 1 exit status
    C:\Programs\Dev-Cpp\Makefile.win [Build Error] [Project1.exe] Error 1
     
  10. sapropel

    sapropel Power Member

    falta-te linkar as bibliotecas, não basta po-las na pasta lib
    já não uso devc++ ha uns tempos, mas deve haver um certo "project properties" aonde podes linkar as bibliotecas que queres para esse projecto.

    EDIT: a resposta já foi tarde, já vi que já resolveste isso. agora esse erro que estás a ter cheira-me que tens de limpar o projecto. existe alguma opção para isso no devc++? que limpe os executaveis, makefiles, manifests, etc? deve ser algo como "clear project" e depois tenta compilar outra vez.
     
  11. metRo_

    metRo_ Power Member

    Eu não estava a usar projecto, simplesmente criei um novo ficheiro...
     
  12. migp999

    migp999 Power Member

    Não sei mas não será por estares a usar namespace sf? ao colocares isso talvez na precises de utilizar o "sf::" antes dos comandos...

    Cumps:D
     
  13. sapropel

    sapropel Power Member

    ok fiz em 5min um programinha (linha de comandos) para calcular isso então.
    é só correr e escrever o path da imagem, ex: c:\users\nomeqq\documents\imagem.jpg

    corre na linha de comandos porque não tenho tempo nem paciencia para fazer uma coisa como deve ser. link (inclui codigo fonte)

    se ao correr ele der um erro a dizer que falta um .dll é porque não tens o c++ runtime no teu pc (normalmente o msvcr90.dll) que vem incluido com proprio windows.
     
    Última edição: 12 de Novembro de 2008
  14. Xtl

    Xtl

    Muito, mas muito obrigada por tudo, a sério!

    Deszipei os ficheiros mas quando clico no .exe aparece-me esta mensagem:
    Não sei o que fazer, será que alguém me pode explicar como se fosse uma criança?

    :sad:

    [​IMG]
     
  15. metRo_

    metRo_ Power Member

    Aqui funcionou e o resultado foi o seguinte:

    [​IMG]

    Não estou a ver porque não funcionou aí... :S
    Normalmente esse erro é quando falta algo, tipo uma framework ou assim digo eu... Tenta fazer o download da dll que o sapropel falou aqui http://www.dll-files.com/dllindex/msvcr90.zip?0VEiSAZIgR, depois de "deszipar" cola o ficheiro dll em windows\system
     
    Última edição: 12 de Novembro de 2008
  16. Xtl

    Xtl

    metRo_ mas o que fizeste foi só clicar no .exe não foi?
     
  17. sapropel

    sapropel Power Member

    ok é porque faltam uns dll, é o mal de compilar os programas dinamicamente em vez de enfiar o codigo todo no proprio .exe.


    essa versao já inclui dentro do .zip os .dlls necessarios, espero que já funcione.
     
    Última edição: 12 de Novembro de 2008
  18. Xtl

    Xtl

    O erro continua o mesmo...
    Já nem o que dizer....
    Será que tenho de por nalguma pasta os ficheiros .dll??? :cwm3:
     
  19. metRo_

    metRo_ Power Member

    experimenta aqui: c:\windows\system
     

Partilhar esta Página