読者です 読者をやめる 読者になる 読者になる

Daily Creative Coding

元「30 min. Processing」。毎日、Creative Codingします。

画像処理の基礎2

画像の色を反転する

f:id:aa_debdeb:20151023225949j:plain
/**
* Reversed Color Image
*
* @author aa_debdeb
* @date 2015/10/27
*/

void setup(){
  size(512, 512);
  PImage image = loadImage("lena.jpg"); 
  image(image, 0, 0);
  loadPixels();
  for(int x = 0; x < width; x++){
    for(int y = 0; y < height; y++){
      color c = pixels[y * width + x];
      pixels[y * width + x] = color(255 - red(c), 255 - green(c), 255 - blue(c));
    }
  }
  updatePixels();

}

画像をセピアにする

f:id:aa_debdeb:20151023230003j:plain
/**
* Sepia Image
*
* @author aa_debdeb
* @date 2015/10/27
*/

void setup(){
  size(512, 512);
  PImage image = loadImage("lena.jpg");
  image(image, 0, 0);

  loadPixels();
  for(int x = 0; x < width; x += 1){
    for(int y = 0; y < height; y += 1){
      color c = pixels[y * width + x];
      float greyScale = (0.30 * red(c) + 0.59 * green(c) + 0.11 * blue(c)) / 255.0;
      pixels[y * width + x] = color(255 * greyScale, 74 * (255.0 / 107) * greyScale, 43 * (255.0 / 107) * greyScale);
    }
  }
  updatePixels();
}

画像のコントラストを強める

f:id:aa_debdeb:20151023230036j:plain
/**
* Contrasty Image
*
* @author aa_debdeb
* @date 2015/10/27
*/

void setup(){
  size(512, 512);
  PImage image = loadImage("lena.jpg");
  image(image, 0, 0);

  loadPixels();
  for(int x = 0; x < width; x += 1){
    for(int y = 0; y < height; y += 1){
      color c = pixels[y * width + x];
      pixels[y * width + x] = color(constrast(red(c)), constrast(green(c)), constrast(blue(c)));
    }
  }
  updatePixels();
}

float constrast(float c){
  return 127 * sin((c / 255) * PI - HALF_PI) + 128;
}