Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Project 2: Image lab
- *
- * Name: Josh Wojcik
- * Email: jjw68@pitt.edu
- *
- */
- import java.awt.Color;
- import java.awt.image.BufferedImage;
- import java.io.*;
- import javax.imageio.ImageIO;
- public class ImageLab3 {
- public static BufferedImage threshold (BufferedImage input, int level)
- {
- int img_height = input.getHeight();
- int img_width = input.getWidth();
- BufferedImage output_img = new BufferedImage (img_width, img_height, BufferedImage. TYPE_INT_RGB);
- for (int x = 0; x < img_width; x++)
- {
- for (int y = 0; y < img_height; y++)
- {
- int r = getRedValue(input, x, y);
- int g = getGreenValue(input, x, y);
- int b = getBlueValue(input, x, y);
- int average = (r + g + b) / 3;
- if (average < level) {
- average = 0;
- } else if (average > level) {
- average = 255;
- }
- Color average_color = new Color(average, average, average);
- output_img.setRGB(x, y, average_color.getRGB());
- }
- }
- return output_img;
- }
- public static int getRedValue(BufferedImage img, int x, int y) {
- Color col = new Color(img.getRGB(x,y));
- int red = col.getRed();
- return red;
- }
- public static int getGreenValue(BufferedImage img, int x, int y) {
- Color col = new Color(img.getRGB(x,y));
- int green = col.getGreen();
- return green;
- }
- public static int getBlueValue(BufferedImage img, int x, int y) {
- Color col = new Color(img.getRGB(x,y));
- int blue = col.getBlue();
- return blue;
- }
- public static void setColor(BufferedImage img, int x, int y, int r, int g, int b) {
- Color c = new Color(r, g, b);
- img.setRGB(x, y, c.getRGB());
- }
- public static BufferedImage colorRotate(BufferedImage input) {
- int img_width = input.getWidth();
- int img_height = input.getHeight();
- BufferedImage output_img = new BufferedImage(
- img_width, img_height, BufferedImage.TYPE_INT_RGB);
- for (int x = 0; x < img_width; x++) {
- for (int y = 0; y < img_height; y++) {
- Color color_at_pos = new Color(input.getRGB(x, y));
- int red = color_at_pos.getRed();
- int green = color_at_pos.getGreen();
- int blue = color_at_pos.getBlue();
- Color rotate = new Color(blue, red, green);
- output_img.setRGB(x, y, rotate.getRGB());
- }
- }
- return output_img;
- }
- }
- public static BufferedImage quantize(BufferedImage input) {
- int img_height = input.getHeight();
- int img_width = input.getWidth();
- BufferedImage output_img = new BufferedImage (img_width, img_height, BufferedImage. TYPE_INT_RGB);
- for (int x = 0; x < img_width; x++) {
- for (int y = 0; y < img_height; y++) {
- Color color_at_pos = new Color(input.getRGB(x, y));
- int quantized_red = color_at_pos.getRed();
- int quantized_green = color_at_pos.getGreen();
- int quantized_blue = color_at_pos.getBlue();
- quantized_red = (quantized_red /64) * 85;
- quantized_green = (quantized_green / 64) * 85;
- quantized_blue = (quantized_blue / 64) * 85;
- Color quantized_color = new Color(quantized_red, quantized_green, quantized_blue);
- output_img.setRGB(x, y, quantized_color.getRGB());
- }
- }
- return output_img;
- }
- }
- public static BufferedImage warhol(BufferedImage input) {
- int img_height = input.getHeight();
- int img_width = input.getWidth();
- BufferedImage output_img = new BufferedImage(img_width * 3, img_height, BufferedImage.TYPE_INT_RGB);
- for (int x = 0; x < img_width; x++) {
- for (int y = 0; y < img_height; y++) {
- Color color_at_pos = new Color (input.getRGB(x, y));
- int red = color_at_pos.getRed();
- int green = color_at_pos.getGreen();
- int blue = color_at_pos.getBlue();
- Color warhol_color = new Color(red, green, blue);
- output_img.setRGB(x, y, warhol_color.getRGB());
- Color warhol_color_1 = new Color(red, green, blue);
- Color warhol_color_2 = new Color(red, green, blue);
- Color warhol_color_3 = new Color(red, green, blue);
- output_img.setRGB(x, y, warhol_color_1.getRGB());
- output_img.setRGB(x + img_width, y, warhol_color_2.getRGB());
- output_img.setRGB(x + 2 * img_width, y, warhol_color_3.getRGB());
- }
- }
- return output_img;
- }
- }
- public static BufferedImage sharpen(BufferedImage input) {
- int img_width = input.getWidth();
- int img_height = input.getHeight();
- BufferedImage output_img = new BufferedImage(img_width, img_height, BufferedImage.TYPE_INT_RGB);
- for (int x = 0; x < img_width; x++) {
- for (int y = 0; y < img_height; y++) {
- Color color_at_pos = new Color(input.getRGB(x, y));
- int sharpened_red = 5 * color_at_pos.getRed();
- int sharpened_blue = 5 * color_at_pos.getBlue();
- int sharpened_green = 5 * color_at_pos.getGreen();
- Color new_sharpened_color = new Color(sharpened_red, sharpened_blue, sharpened_green);
- output_img.setRGB(x, y, new_sharpened_color.getRGB());
- //get the r, g, b from the left neighbor
- //left is valid if x > 0
- if (x > 0) {
- Color left_color = new Color(input.getRGB(x-1, y));
- sharpened_red -= left_color.getRed();
- sharpened_blue -= left_color.getBlue();
- sharpened_green -= left_color.getGreen();
- }
- if (x < 0) {
- Color right_color = new Color(input.getRGB(x+1, y));
- sharpened_red -= right_color.getRed();
- sharpened_blue -= right_color.getBlue();
- sharpened_green -= right_color.getGreen();
- }
- if (x < 255) {
- Color top_color = new Color(input.getRGB(x, y-1));
- sharpened_red -= top_color.getRed();
- sharpened_blue -= top_color.getBlue();
- sharpened_green -= top_color.getGreen();
- }
- if (x > 255) {
- Color bottom_color = new Color(input.getRGB(x, y+1));
- sharpened_red -= bottom_color.getRed();
- sharpened_blue -= bottom_color.getBlue();
- sharpened_green -= bottom_color.getGreen();
- /*
- Color left_color = new Color(input.getRGB(x, y));
- Color right_color = new Color(input.getRGB(x, y));
- Color left_color;
- if (x > 0) {
- left_color = new Color(input.getRGB(x-1, y));
- } else {
- left_color = new Color(0, 0, 0);
- }
- */
- // do for top, bottom, and right
- if (sharpened_red > 255) {
- sharpened_red = 255;
- } else if (sharpened_red < 0) {
- sharpened_red = 0;
- }
- if (sharpened_blue > 255) {
- sharpened_blue = 255;
- } else if (sharpened_blue < 0) {
- sharpened_blue = 0;
- }
- if (sharpened_green > 255) {
- sharpened_green = 255;
- } else if (sharpened_green < 0) {
- sharpened_green = 0;
- }
- Color computed_color = new Color(sharpened_red, sharpened_green, sharpened_blue);
- output_img.setRGB(x,y,computed_color.getRGB());
- }
- }
- return output_img;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement