欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java數(shù)字圖像處理之圖像灰度處理

 更新時(shí)間:2022年06月10日 16:04:02   作者:智慧的豬-  
這篇文章主要為大家詳細(xì)介紹了Java數(shù)字圖像處理之圖像灰度處理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Java數(shù)字圖像處理基礎(chǔ)之圖像灰度處理,供大家參考,具體內(nèi)容如下

一、簡(jiǎn)介

圖像灰度化處理可以作為圖像處理的預(yù)處理步驟,在圖像處理中是十分重要的一件事?;叶葓D像上每個(gè)像素的顏色值又稱為灰度,指黑白圖像中點(diǎn)的顏色深度,范圍一般從0到255,白色為255,黑色為0。

灰度轉(zhuǎn)換公式:

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

我們只是需要把每個(gè)像素點(diǎn)都轉(zhuǎn)化為灰度值,就可實(shí)現(xiàn)圖像的灰度轉(zhuǎn)化;

二、代碼演示

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); ?// 顯示灰度圖片
? ? }

? ? // 灰度處理,把原圖傳進(jìn)去,傳出來(lái)為修改后的圖
? ? public BufferedImage gray(BufferedImage b){
? ? ? ? int width = b.getWidth();
? ? ? ? int height =b.getHeight();
? ? ? ? // 下面這個(gè)別忘了定義,不然會(huì)出錯(cuò)
? ? ? ? bufferedImage_end = new BufferedImage(width,height, BufferedImage.TYPE_3BYTE_BGR );
? ? ? ? // 雙層循環(huán)更改圖片的RGB值,把得到的灰度值存到bufferedImage_end中,然后返回bufferedImage_end
? ? ? ? for (int y = 0; y < height; y++) {
? ? ? ? ? ? for (int x = 0; x < width; x++) {
? ? ? ? ? ? ? ? // 獲取到(x,y)此像素點(diǎn)的Colo,轉(zhuǎn)化為灰度
? ? ? ? ? ? ? ? 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();
? ? }
}

三、結(jié)果演示

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • IDEA報(bào)錯(cuò):java?找不到符號(hào)圖文解決過(guò)程

    IDEA報(bào)錯(cuò):java?找不到符號(hào)圖文解決過(guò)程

    這篇文章主要給大家介紹了關(guān)于IDEA報(bào)錯(cuò):java?找不到符號(hào)解決的相關(guān)資料,運(yùn)行項(xiàng)目時(shí)Idea報(bào)錯(cuò),提示找不到符號(hào),但是這個(gè)類(lèi)在項(xiàng)目里是存在的,網(wǎng)上找了很多文章都沒(méi)解決,浪費(fèi)了一個(gè)下午終于弄好了,記錄一下,需要的朋友可以參考下
    2023-08-08
  • IDEA代碼熱部署和熱加載的三種實(shí)現(xiàn)方案

    IDEA代碼熱部署和熱加載的三種實(shí)現(xiàn)方案

    在日常開(kāi)發(fā)中,我們需要經(jīng)常修改 Java 代碼,手動(dòng)重啟項(xiàng)目,查看修改后的效果,如果在項(xiàng)目小時(shí),重啟速度比較快,等待的時(shí)間是較短的,我們可以使用代碼熱加載和熱部署解決該問(wèn)題,本文給大家介紹了三種實(shí)現(xiàn)方案,需要的朋友可以參考下
    2023-11-11
  • Java中的ArrayList.trimToSize()方法詳解

    Java中的ArrayList.trimToSize()方法詳解

    這篇文章主要介紹了Java中的ArrayList.trimToSize()方法詳解,前幾天看了Java?ArrayList,沒(méi)有明白trimToSize()這個(gè)方法是什么意思,所以看了一下源碼并且debug一下自己的一個(gè)例子,明白了其中的含義,需要的朋友可以參考下
    2023-11-11
  • MyEclipse整合ssh三大框架環(huán)境搭載用戶注冊(cè)源碼下載

    MyEclipse整合ssh三大框架環(huán)境搭載用戶注冊(cè)源碼下載

    這篇文章主要為大家詳細(xì)介紹了如何使用MyEclipse整合ssh三大框架進(jìn)行環(huán)境搭載,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Java常用流程控制語(yǔ)句實(shí)現(xiàn)原理解析

    Java常用流程控制語(yǔ)句實(shí)現(xiàn)原理解析

    這篇文章主要介紹了Java常用流程控制語(yǔ)句實(shí)現(xiàn)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Java synchronized鎖升級(jí)jol過(guò)程詳解

    Java synchronized鎖升級(jí)jol過(guò)程詳解

    這篇文章主要介紹了Java synchronized鎖升級(jí)jol過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Java均攤復(fù)雜度和防止復(fù)雜度的震蕩原理分析

    Java均攤復(fù)雜度和防止復(fù)雜度的震蕩原理分析

    這篇文章主要介紹了Java均攤復(fù)雜度和防止復(fù)雜度的震蕩,結(jié)合實(shí)例形式分析了Java均攤復(fù)雜度和防止復(fù)雜度的震蕩相關(guān)概念、原理、實(shí)現(xiàn)方法與注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • Layui前后臺(tái)交互數(shù)據(jù)獲取java實(shí)例

    Layui前后臺(tái)交互數(shù)據(jù)獲取java實(shí)例

    下面小編就為大家分享一篇Layui前后臺(tái)交互數(shù)據(jù)獲取java實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • 從java反編譯及字節(jié)碼角度探索分析String拼接字符串效率

    從java反編譯及字節(jié)碼角度探索分析String拼接字符串效率

    這篇文章主要介紹了從java反編譯及字節(jié)碼角度探索分析String拼接字符串效率,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 淺談Java到底是值傳遞還是引用傳遞呢

    淺談Java到底是值傳遞還是引用傳遞呢

    今天帶大家學(xué)習(xí)Java的相關(guān)知識(shí),文章圍繞著Java到底是值傳遞還是引用傳遞展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06

最新評(píng)論