⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 noicehandle.java

📁 最近去看監視器材,看到他們的監視軟體 就突發奇想自己來寫一個看看 程式會把移動中的物體用綠色框框起來 並且把當時的影像存成jpg檔(我把這個功能註解起來了) 我這個程式是在Ultr
💻 JAVA
字号:
import java.awt.*;
import java.awt.image.*;
import javax.swing.*;
import java.awt.event.*;

public class noiceHandle extends JFrame
{
	private	final int imageRecover_RADIUS=5;
	private	final int SCAN_TIMES=2;
	private	int scanNoiceReduce=0;
	private	int scanImageRecover=0;
	private	Color on = Color.white;
	private	Color off = Color.black;

	public BufferedImage noiceReduce(BufferedImage exeImage)
	{
		BufferedImage exeImageOpt = new	BufferedImage(exeImage.getWidth(this), exeImage.getHeight(this), BufferedImage.TYPE_INT_ARGB);

		int loop1,loop2;
		loop1=loop2=scanNoiceReduce+1;

		if(scanNoiceReduce==SCAN_TIMES)scanNoiceReduce=0;
		else scanNoiceReduce++;


		for(loop1 = 1; loop1 < exeImage.getWidth(this)-1;)
		{
			for(loop2 = 1; loop2 < exeImage.getHeight(this)-1;)
			{
				try
				{
					if(exeImage.getRGB(loop1,loop2)==on.getRGB()&&checkSurround(exeImage,loop1,loop2,off.getRGB())>4)
					{
						exeImageOpt.setRGB(loop1,loop2,off.getRGB());
					}
					else exeImageOpt.setRGB(loop1,loop2,exeImage.getRGB(loop1,loop2));
				}catch(ArrayIndexOutOfBoundsException e){}
				loop2=loop2+scanNoiceReduce+1;
			}
			loop1=loop1+scanNoiceReduce+1;
		}
		return exeImageOpt;
	}

	public BufferedImage imageRecover(BufferedImage	exeImage)
	{
		BufferedImage exeImageOpt = new	BufferedImage(exeImage.getWidth(this), exeImage.getHeight(this), BufferedImage.TYPE_INT_ARGB);

		for(int	loop1=1; loop1 < exeImage.getWidth(this)-1; loop1++)
		{
			for(int	loop2=1; loop2 < exeImage.getHeight(this)-1; loop2++)
			{
				try
				{
					exeImageOpt.setRGB(loop1,loop2,off.getRGB());
				}catch(ArrayIndexOutOfBoundsException e){}
			}
		}

		for(int	loop1=1; loop1 < exeImage.getWidth(this)-1; loop1++)
		{
			for(int	loop2=1; loop2 < exeImage.getHeight(this)-1; loop2++)
			{
				if(exeImage.getRGB(loop1,loop2)==on.getRGB())
				{
					for(int	x=-imageRecover_RADIUS;x<=imageRecover_RADIUS;x++)
					{
						for(int	y=-imageRecover_RADIUS;y<=imageRecover_RADIUS;y++)
						{
							try
							{
								if(Math.sqrt((double)x*(double)x+(double)y*(double)y)<=imageRecover_RADIUS)exeImageOpt.setRGB(loop1+x,loop2+y,on.getRGB());
							}catch(ArrayIndexOutOfBoundsException e){}

						}
					}
				}
			}
		}

		return exeImageOpt;

	}


	public int checkSurround(BufferedImage imageTemp,int x,int y,int RGB)
	{
		int count=0;
		if(imageTemp.getRGB(x+1,y)==RGB)count++;
		if(imageTemp.getRGB(x-1,y)==RGB)count++;
		if(imageTemp.getRGB(x,y+1)==RGB)count++;
		if(imageTemp.getRGB(x,y-1)==RGB)count++;
		if(imageTemp.getRGB(x+1,y-1)==RGB)count++;
		if(imageTemp.getRGB(x-1,y+1)==RGB)count++;
		if(imageTemp.getRGB(x+1,y+1)==RGB)count++;
		if(imageTemp.getRGB(x-1,y-1)==RGB)count++;
		return(count);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -