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

网友投稿 436 2022-07-24


本文实例为大家分享了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();

}

}

三、结果演示


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于Springboot一个注解搞定数据字典的实践方案
下一篇:Java图像处理之RGB调色面板
相关文章

 发表评论

暂时没有评论,来抢沙发吧~