Pages

Subscribe:

Ads 468x60px

♪ ♥ Get Paid Daily - The Best Sites PTC ♥ ♪
DonkeyMails.com: No Minimum Payout
AyuWage Services - Get Paid to Visits Sites and Complete Surveys

Minggu, 15 Juli 2012

Operasi Titik Bag. 1 (Konversi Citra RGB ke GrayScale)

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:

— End of Document —

0 komentar:

Posting Komentar

Please Give Your Feedback Or Message.
Thank You!!?

Unique 1:1 Traffic Exchange

♪ ♥ Ma liste de blogs ♥ ♪

♪ ♥ Please Votes! Thanks. ♪ ♥
×