最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java如何實(shí)現(xiàn)圖像的卷積效果

 更新時(shí)間:2024年03月25日 09:52:23   作者:feng之鋒  
這篇文章主要介紹了Java如何實(shí)現(xiàn)圖像的卷積效果問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

圖像的卷積

指的是使用一個(gè)卷積核(kernel)對(duì)圖像中的每一個(gè)像素進(jìn)行一些列操作。

卷積核(算子)是用來(lái)做圖像處理時(shí)的矩陣,圖像處理時(shí)也稱為掩膜,是于原圖像做運(yùn)算的參數(shù)。

卷積核通常是一個(gè)方形的網(wǎng)格結(jié)構(gòu),該區(qū)域上的每一個(gè)方格都有一個(gè)權(quán)重值,

如下圖,利用一個(gè)3 * 3的卷積核與圖像上的相應(yīng)大小的區(qū)域進(jìn)行卷積運(yùn)算,即對(duì)應(yīng)相乘再相加,0*4+0*0+0*0+0*0+0*1+1*0+0*0+1*0+2*(-4)=-8.

Java中實(shí)現(xiàn)的效果

主類:

package com.yf1105;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;

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


public class DrawF {
	public static void main(String[] args) {
		DrawF drawpanel = new DrawF();
		drawpanel.showUI();
		
	}
	
	public void showUI() {
		JFrame jf = new JFrame();
		jf.setTitle("圖片");
		jf.setSize(800, 800);
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jf.setLayout(new FlowLayout());
		jf.setLocationRelativeTo(null);
		
		jf.setVisible(true);
		
		//獲取畫筆一定要在可見之后
		Graphics g = jf.getGraphics();
		//添加監(jiān)聽器
		DrawListener mouse = new DrawListener();
		jf.addMouseListener(mouse);
		//將主類中的畫筆傳給監(jiān)聽器類中去
		mouse.g = g;
	}
}

監(jiān)聽類:

package com.yf1105;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;

public class DrawListener implements MouseListener{
	Graphics g;
	
	public int[][] getImagePixel(String path){
		File file = new File(path);
		
		BufferedImage bufferImage = null;
		try {
			bufferImage = ImageIO.read(file);
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			
		}
		
		int w = bufferImage.getWidth();
		int h = bufferImage.getHeight();
		
		int [][] pixelArray = new int[w][h];
		
		for(int i = 0; i < w; i++) {
			for(int j = 0; j < h; j++) {
				//讀取每個(gè)位置的像素點(diǎn)對(duì)應(yīng)的RGB值
				int pixel = bufferImage.getRGB(i, j);
				pixelArray[i][j] = pixel;
			}
		}
		return pixelArray;
		
	}
	
	//在界面上畫出ia數(shù)組圖像,即卷積結(jié)果
	public void drawjj(Graphics g) {
		int[][] ia = getImagePixel("image/3.jpg");
		ia = valide(ia, kArray);
		for(int i = 0; i<ia.length; i++) {
			for(int j = 0; j<ia[0].length; j++) {
				int pie = ia[i][j];
				Color color = new Color(pie,pie,pie);
				g.setColor(color);
				g.fillRect(i, j, 1, 1);
			}
		}
		
	}
	
	//卷積核
	float[][] kArray = {{-1, -1, -1, -1, -1}, {-1, -1, -1, -1, -1}, {-1, -1, 25, -1, -1}, {-1, -1, -1, -1, -1}, {-1, -1, -1, -1, -1}};
	
	
	//實(shí)現(xiàn)卷積操作
	public static int[][] valide(int[][] src, float[][] filter){
		int[][] tem = new int[filter.length][filter[0].length];
		int valideWidth = src[0].length - filter[0].length;
		int valideHeigth = src.length - filter.length + 1;
		int[][] valide = new int[valideHeigth][valideWidth];
		
		for(int i = 0; i<valideHeigth; i++) {
			for(int j = 0; j<valideWidth; j++) {
				for(int y = 0; y<filter.length; y++) {
					for(int z = 0; z<filter[0].length; z++ ) {
						tem[y][z] = (int)((src[i+y][j+z])*filter[y][z]); 
					}
				}
				int kk = 0;
				for(int y = 0; y<filter.length; y++) {
					for(int z = 0; z<filter[0].length; z++) {
						kk += tem[y][z];
					}
				}
				if(kk<0)kk=0;
				if(kk>255)kk=255;
				valide[i][j] = kk;
				
				}
			}
			return valide;
		}
		
	
	public void mouseClicked(MouseEvent e) {
		System.out.println("點(diǎn)擊");
		drawjj(g);
		
		
	}
	
	public void mousePressed(MouseEvent e) {}
	
	public void mouseReleased(MouseEvent e) {}
	
	public void mouseEntered(MouseEvent e) {}
	
	public void mouseExited(MouseEvent e) {}
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring中的@Lazy注解用法實(shí)例

    Spring中的@Lazy注解用法實(shí)例

    這篇文章主要介紹了Spring中的@Lazy注解用法實(shí)例,在Spring中常用于單實(shí)例Bean對(duì)象的創(chuàng)建和使用,單實(shí)例Bean懶加載容器啟動(dòng)后不創(chuàng)建對(duì)象,而是在第一次獲取Bean創(chuàng)建對(duì)象時(shí),初始化,需要的朋友可以參考下
    2023-08-08
  • 解析Java中的默認(rèn)方法

    解析Java中的默認(rèn)方法

    這篇文章主要介紹了Java中的默認(rèn)方法,包括繼承和調(diào)用等Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-07-07
  • 淺拷貝和深拷貝原理分析

    淺拷貝和深拷貝原理分析

    Java 對(duì)象拷貝是為對(duì)象賦值的一種方式,簡(jiǎn)單來(lái)說(shuō)就是創(chuàng)建一個(gè)和原對(duì)象相同的對(duì)象,新創(chuàng)建的對(duì)象是原對(duì)象的一個(gè)副本。面試官賊拉喜歡在面試的時(shí)候問(wèn)一問(wèn)你淺拷貝和深拷貝的原理
    2021-08-08
  • SpringBoot利用模板實(shí)現(xiàn)自動(dòng)生成Word合同的功能

    SpringBoot利用模板實(shí)現(xiàn)自動(dòng)生成Word合同的功能

    這篇文章主要為大家詳細(xì)介紹了SpringBoot如何利用模板實(shí)現(xiàn)自動(dòng)生成Word合同的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2025-12-12
  • Java靜態(tài)static與實(shí)例instance方法示例

    Java靜態(tài)static與實(shí)例instance方法示例

    這篇文章主要為大家介紹了Java靜態(tài)static與實(shí)例instance方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Java設(shè)計(jì)模式之解釋器模式

    Java設(shè)計(jì)模式之解釋器模式

    這篇文章介紹了Java設(shè)計(jì)模式之解釋器模式,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • Spring-Security對(duì)HTTP相應(yīng)頭的安全支持方式

    Spring-Security對(duì)HTTP相應(yīng)頭的安全支持方式

    這篇文章主要介紹了Spring-Security對(duì)HTTP相應(yīng)頭的安全支持方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • IDEA中配置Java反編譯工具javap -c的使用

    IDEA中配置Java反編譯工具javap -c的使用

    本文主要介紹了IDEA中配置Java反編譯工具javap -c的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Java協(xié)議字節(jié)操作工具類詳情

    Java協(xié)議字節(jié)操作工具類詳情

    這篇文章主要介紹了Java協(xié)議字節(jié)操作工具類詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • 一起來(lái)學(xué)習(xí)JAVA的運(yùn)算符

    一起來(lái)學(xué)習(xí)JAVA的運(yùn)算符

    這篇文章主要為大家詳細(xì)介紹了JAVA的運(yùn)算符,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03

最新評(píng)論

钟祥市| 卢湾区| 岱山县| 松桃| 和林格尔县| 昭通市| 广昌县| 福建省| 万山特区| 通江县| 西畴县| 湟中县| 饶河县| 湖州市| 合肥市| 久治县| 疏附县| 民丰县| 师宗县| 青神县| 米易县| 扎兰屯市| 靖江市| 九台市| 百色市| 阳春市| 许昌市| 东港市| 平山县| 乌鲁木齐县| 麻江县| 永安市| 五华县| 洞头县| 文山县| 宣武区| 黎平县| 毕节市| 仙居县| 杨浦区| 洪洞县|