Java数字图像处理之图像灰度处理

Olinda ·
更新时间:2024-11-14
· 1229 次阅读

本文实例为大家分享了Java数字图像处理基础之图像灰度处理,供大家参考,具体内容如下

一、简介

图像灰度化处理可以作为图像处理的预处理步骤,在图像处理中是十分重要的一件事。灰度图像上每个像素的颜色值又称为灰度,指黑白图像中点的颜色深度,范围一般从0到255,白色为255,黑色为0。

灰度转换公式:

int gray = (int)(color.getRed() * 0.299 + color.getGreen() * 0.587 + color.getBlue() *0.114);

我们只是需要把每个像素点都转化为灰度值,就可实现图像的灰度转化;

二、代码演示 import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class ImageGray extends Canvas {     JFrame jframe = new JFrame("图像灰度处理");     BufferedImage bufferedImage,bufferedImage_end ;     Image image,image_end;     public ImageGray(){         try {             bufferedImage = ImageIO.read(new File("D:\\EDge下载地址\\lena.jpg"));         } catch (IOException e) {             e.printStackTrace();         }         jframe.setLayout(null);         // 定义位置         jframe.setBounds(200,200,800,600);         this.setBounds(0,0,800,600);         jframe.add(this);         jframe.setVisible(true);     }     @Override     public void paint(Graphics g) {         image =(Image)bufferedImage;         image_end =(Image)gray(bufferedImage);         g.drawImage(image,0,0,null);  // 显示原图         g.drawLine(350,10,350,600);    // 中间的线         g.drawImage(image_end,370,0,null);  // 显示灰度图片     }     // 灰度处理,把原图传进去,传出来为修改后的图     public BufferedImage gray(BufferedImage b){         int width = b.getWidth();         int height =b.getHeight();         // 下面这个别忘了定义,不然会出错         bufferedImage_end = new BufferedImage(width,height, BufferedImage.TYPE_3BYTE_BGR );         // 双层循环更改图片的RGB值,把得到的灰度值存到bufferedImage_end中,然后返回bufferedImage_end         for (int y = 0; y < height; y++) {             for (int x = 0; x < width; x++) {                 // 获取到(x,y)此像素点的Colo,转化为灰度                 Color color = new Color(bufferedImage.getRGB(x,y));                 int gray = (int)(color.getRed() * 0.299 + color.getGreen() * 0.587 + color.getBlue() *0.114);                 Color color_end = new Color(gray,gray,gray);                 bufferedImage_end.setRGB(x,y,color_end.getRGB());             }         }         return bufferedImage_end;     }     public static void main(String[] args) {         new ImageGray();     } } 三、结果演示



JAVA 图像处理

需要 登录 后方可回复, 如果你还没有账号请 注册新账号