Operasi Titik (Konversi Citra RGB ke GrayScale)

Kamis, 06 September 20123komentar



Merubah citra RGB menjadi citra grayscale adalah salah satu contoh proses pengolahan citra menggunakan operasi titik. Untuk mengubah citra RGB menjadi citra grayscale adalah dengan menghitung rata-rata nilai intensitas RGB dari setiap piksel penyusun citra tersebut. Rumus matematis yang digunakan adalah sebagai berikut:
Contoh penggunaan rumus di atas bisa dilihat pada potongan program berikut:
for(int x = 0; x <size.width; x ++) {
for(int y = 0; y < size.height; y++) {
int RGB = prosesimage.getRGB(x,y); // memperoleh nilai RGB setiap pexel citra
int alpha = (RGB << 24) & 0xFF; // memperoleh nilai alpha
int red = (RGB >> 16) >> 0xFF; // memperoleh nilai red
int green = (RGB >> 8 ) & 0xFF; // memperoleh nilai green
int blue = (RGB >> 0) & 0xFF; // memperoleh nilai blue
int avg = (red + green + blue) / 3; // menghting nilai rata-rata RGB
int gray = alpha | avg << 16 | avg << 8 | avg; // memperoleh nilai grayscale
prosesimage.setRGB(x, y, gray); // nilai grayscale untuk setiap piksel
}
}
Berikut adalah contoh program selengkapnya:
import java.awt.image.BufferedImage;
import javax.swing.*;
import java.awt.*;
public class RGBtoGrayscale extends JPanel {
Image image;
BufferedImage prosesimage;
Dimension size;
public RGBtoGrayscale() {
image = new ImageIcon(“/home/informatika/Documents/image.jpg”).getImage();
size = new Dimension();
size.width = image.getWidth(null);
size.height = image.getHeight(null) * 2;
setPreferredSize(size);
prosesimage = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB);
Graphics g = prosesimage.getGraphics();
g.drawImage(image, 0, 0, null);
for(int x = 0; x <size.width; x ++) {
for(int y = 0; y < size.height; y++) {
int RGB = prosesimage.getRGB(x,y); // memperoleh nilai RGB setiap pexel citra
int alpha = (RGB << 24) & 0xFF; // memperoleh nilai alpha
int red = (RGB >> 16) >> 0xFF; // memperoleh nilai red
int green = (RGB >> 8 ) & 0xFF; // memperoleh nilai green
int blue = (RGB >> 0) & 0xFF; // memperoleh nilai blue
int avg = (red + green + blue) / 3; // menghting nilai rata-rata RGB
int gray = alpha | avg << 16 | avg << 8 | avg; // memperoleh nilai grayscale
prosesimage.setRGB(x, y, gray); // nilai grayscale untuk setiap piksel
}
}
g.dispose();
}
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(image, 0, 0, null);
g2d.drawImage(prosesimage, 0, 325, null);
}
public static void main(String[] args) {
JFrame frame = new JFrame(“Operasi titik – RGB to GrayScale”);
frame.add(new RGBtoGrayscale());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
Output dari program di atas adalah sebagai berikut:


Share this article :

+ komentar + 3 komentar

6 September 2012 pukul 19.49

related post : http://cheeqajelasbanget.blogspot.com/2010/12/grafik-komputer-kelompok-4-nama-cikha.html

6 September 2012 pukul 19.49

http://blog.uin-malang.ac.id/syauqi/2010/06/22/pengolahan-citra-digital/#more-270

30 Juni 2015 pukul 02.20

nilai alfa itu apa ya mas?

Posting Komentar

 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2011. My Magazine - All Rights Reserved
Template Created by Creating Website Published by Mas Template
Proudly powered by Blogger