Giter VIP home page Giter VIP logo

photopobre's Introduction

Photopobre

O projeto aceita uma imagem no formato PPM como entrada e opera sobre ela. As operações realizadas são:

  • Escala de cinza
  • Filtro sépia
  • Blur
  • Rotação
  • Inversão de cores
  • Cortar imagem

O projeto contém duas pastas com imagens que representam a imagem original e o esperado de cada operação. Além disseo, existem arquivos de entrada que contém as opções de entrada para a operação a ser feita.

Formato PPM

O formato PPM descreve a imagem em um arquivo de texto, que pode ser lido por humanos. Ele segue a seguinte especificação:

  • A primeira linha possui a palavra P3
  • A segunda linha possui o número de colunas (N) e linhas (M)
  • A terceira linha possui o número 255
  • As próximas linhas descrevem os pixels da image, são no total M linhas, onde cada uma possui N pixels descritos. Cada pixel possui 3 inteiros, que vão de 0 a 255. (Veja o Anexo 4 para mais informações sobre o pixel)
P3
3 2
255
12  34  56  77 12 33  12 12 12
43 200 100  10 20 30  51  5  1

O exemplo acima mostra uma imagem com 2 linhas e 3 colunas. Se você salvar o exemplo em um arquivo de extensão “.ppm”, esta imagem poderá ser vista no seu computador como uma imagem normal.

Leitura e Escrita de Imagens

Para leitura de imagem, pode-se fazer o uso do comando “cat”. O seu programa deve ser executado da seguinte forma:

cat lena.ppm entrada.txt | ./photopobre > saida.ppm

Este comando irá inserir na entrada do seu programa a imagem “lena.ppm” e o que estiver escrito no arquvido de entrada.txt. Este arquivo de entrada pode ser utilizado para descrever quantas e quais operações vão ser feitas nesta imagem. Por exemplo:

3
3 15
1
7  10 25  100 300

Este exemplo descreve que serão feitas 3 operações na imagem:

  • A primeira operação é descrita pela linha “3 15”, que representa uma operação de blur com o tamanho de 15
  • A segunda operação é descrita pela linha “1” , que representa uma operação de escala de cinza
  • A terceira operação é descrita pela linha “7 10 25 100 300“, que representa uma operação de corte, que se inicia no ponto (10, 25), e tem tamanho de 100 por 300

Criação e conversão de imagens

Algumas imagens PPM já estão disponíveis junto com esta descrição de projeto. Se você quiser utilizar novas imagens que não são PPM, você pode utilizar o commando “convert” para converter de um formato para o outro. Por exemplo, se eu quero converter a image foto-familia.png para PPM, eu uso o comando:

convert foto-familia.png -compress none foto-familia.ppm

Pixels e cores

Pixels são a menor unidade de uma imagem. Se o tamanho da image for 300 pro 100, isso quer dizer que a imagem tem 300 colunas e 100 linhas, e um total de 30000 pixels (300 x 100). Cada pixel possui 3 componentes, o RGB, do inglês Red, Green e Blue (Vermelho, Verde e Azul). Cada componente varia de 0 a 255, sendo 0 a ausência daquela cor, e 255 a total presença daquela cor.

photopobre's People

Contributors

brunanayara avatar lucassiqz avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.