O sistema HSB trabalha diretamente com saturação e brilho. A saturação varia de 0% até 100%. No seu valor mais baixo, a imagem não possui nenhuma identidade de cor, apenas tons de cinza. No seu valor mais alto, as cores ficam com saturação na sua forma mais pura, na matiz.
O brilho também varia de 0% até 100%. No seu valor mais baixo, a imagem fica preta, pois o brilho é a quantidade de luz que tal imagem está refletindo. No valor mais alto, a luminância da cor atinge o nível mais puro na matiz.
Não confundir com o sistema HSL (usado pelo Photoshop e outros editores bitmap), que L representa a quantidade de branco na imagem. Caso esteja 100%, a imagem fica completamente branca, independente da quantidade de saturação.
Para fazer ajustes de brilho e saturação usando RGB, são necessários cálculos complexos de matrizes, enquanto o HSB já trabalha com esse valores naturalmente.
O aplicativo utiliza slidebars ControlP5 para a manipulação do brilho e saturação.
Código:
O brilho também varia de 0% até 100%. No seu valor mais baixo, a imagem fica preta, pois o brilho é a quantidade de luz que tal imagem está refletindo. No valor mais alto, a luminância da cor atinge o nível mais puro na matiz.
Não confundir com o sistema HSL (usado pelo Photoshop e outros editores bitmap), que L representa a quantidade de branco na imagem. Caso esteja 100%, a imagem fica completamente branca, independente da quantidade de saturação.
Para fazer ajustes de brilho e saturação usando RGB, são necessários cálculos complexos de matrizes, enquanto o HSB já trabalha com esse valores naturalmente.
O aplicativo utiliza slidebars ControlP5 para a manipulação do brilho e saturação.
Código:
import controlP5.*; ControlP5 cp5; PImage img; int sat, bri,pos; float imgSat, imgBri, imgHue,somaSat,somaBri; void setup() { bri = 1; sat = 0; size(320,270); img= loadImage("original.jpg"); colorMode(HSB,100,100,100); cp5 = new ControlP5(this); cp5.addSlider("sat") .setPosition(5,250) .setRange(-100,100) .setWidth(290) ; cp5.addSlider("bri") .setPosition(5,260) .setRange(-100,100) .setWidth(290) ; } void draw(){ loadPixels(); for(int x = 0; x<320; x++) { for(int y = 0; y< 240; y++) { pos = y*320+x; imgHue = hue(img.pixels[pos]); imgSat = saturation(img.pixels[pos]); imgBri = brightness(img.pixels[pos]); somaSat = imgSat+sat; somaBri = imgBri+bri; if(somaSat > 100) somaSat = 100; if (somaSat < 0) somaSat = 0; if (somaBri > 100) somaBri = 100; if(somaBri<0) somaBri = 0; pixels[pos] = color(imgHue,somaSat,somaBri); } } updatePixels(); }
Comentários
Postar um comentário