วันอังคารที่ 27 มกราคม พ.ศ. 2558

Image Processing with Java on Ubuntu Gnome 15.04

         ผมเคยเขียนบทความง่าย ๆ เกี่ยวกับ Image Processing บน Linux ด้วยภาษา Python
 โดยใช้ชุดโปรแกรม (Library) สำหรับการประมวลผลภาพ คือ Python Image Library มาแล้ว
แต่ไม่เคยลองเขียนโปรแกรมประมวลผลภาพด้วยภาษา Java สักครั้ง  วันนี้ติดตั้งภาษา Java
บน Ubuntu Gnome 15.04 แล้วเลยลองเขียนโปรแกรมประมวผลภาพด้วยภาษา Java
        ก่อนอื่นต้องติดตั้งภาษา Java และ Compiler ก่อน  ผมเลือกติดตั้ง Oracle Java 8 ตาม
ตัวอย่าง http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html หลัง
ติดตั้งตรวจสอบว่าเรามี Java และ Compiler ใช้งานด้วยคำสั่ง ดังตัวอย่าง

submarine@submarine:~$ java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
submarine@submarine:~$ 


submarine@submarine:~$ javac -version
javac 1.8.0_31
submarine@submarine:~$ 
submarine@submarine:~$ 


submarine@submarine:~$ cd images/
submarine@submarine:~/images$ 

submarine@submarine:~/images$ nano MyFirstJavaProgram.java

public class MyFirstJavaProgram{
/* This is my first java program.
 * This will print 'Hello World' as the output
 */
 public static void main(String[]args){
System.out.println("Hello World  ทดสอบภาษาไทยครับ,,,");// prints Hello World
}
}


submarine@submarine:~/images$ javac MyFirstJavaProgram.java 
submarine@submarine:~/images$ 
submarine@submarine:~/images$ java MyFirstJavaProgram 
Hello World  ทดสอบภาษาไทยครับ,,,






import java.awt.*;
import java.awt.image.BufferedImage;

import java.io.*;

import javax.imageio.ImageIO;
import javax.swing.JFrame;

public class GrayScale {

   BufferedImage  image;
   int width;
   int height;
 
   public GrayScale() {
 
      try {
         File input = new File("submarine.jpg");
         image = ImageIO.read(input);
         width = image.getWidth();
         height = image.getHeight();
       
         for(int i=0; i<height; i++){
       
            for(int j=0; j<width; j++){
         
               Color c = new Color(image.getRGB(j, i));
               int red = (int)(c.getRed() * 0.299);
               int green = (int)(c.getGreen() * 0.587);
               int blue = (int)(c.getBlue() *0.114);
               Color newColor = new Color(red+green+blue,
             
               red+green+blue,red+green+blue);
             
               image.setRGB(j,i,newColor.getRGB());
            }
         }
       
         File ouptut = new File("submarine1.jpg");
         ImageIO.write(image, "jpg", ouptut);
       
      } catch (Exception e) {}
   }
 
   static public void main(String args[]) throws Exception
   {
      GrayScale obj = new GrayScale();
   }
}

ไม่มีความคิดเห็น:

แสดงความคิดเห็น