【java当中摄像头调用保姆级别教程和在摄像头上实现滤镜效果】

摄像头的调用

1.包的导入

1.1首先进入webcam官网

在这里插入图片描述

1.2然后点击Download下的下载的webcam-capture-0.3.10-dist.zip

在这里插入图片描述

1.3下载完成包以后进入eclipse界面,右击包的选项选择 build path中的configure build path–>libraries—>Add External JAR…—>选择需要的三个包----(在下面的第二张图当中)

在这里插入图片描述
在这里插入图片描述三个文件的名字如下
在这里插入图片描述

2.调用包的具体代码以及实现摄像头滤镜效果的代码

2.1具体摄像头的打开,获取

		Webcam webcam =Webcam.getDefault();
		//将摄像头打开
		webcam.open();

2.2摄像头实现滤镜效果的代码

package com.lk.DrawPixel0112;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.util.Random;
//今天的任务:1完成线程的博客的书写2完成图像处理效果的博客的书写3将整个代码重新写一遍,边写边总结和领悟自己书写的内容
import com.github.sarxos.webcam.Webcam;
//要写一篇关于进程,线程,程序的相关的教程
public class ThreadPixel extends Thread {
   
	Graphics g;
	BufferedImage bff1;
	public boolean flag=true;
	String type;
	float[][] kernel1 = {
    {
    0, -1, 0 }, {
    -1, 1.99f, 1 }, {
    0, -1, 0 }};
	//有三种type如果type是视频效果一,我们用灰度的效果,如果是视频效果二我们用卷积1的效果,如果是视频效果三,我们用油画的效果
	public ThreadPixel(Graphics g) 
	{
   
		this.g=g;
	}
	//函数作用:实现摄像头的多种效果的传递
	//参数:是缓冲的图片的点
    public BufferedImage drawhd(BufferedImage bff) 
    {
   
    	//首先是获取的摄像头的照片是有一定大小的
    	//创建了一个和bff一样大小的画布,bff1
    	//这个和数组那个的区别在哪里
        bff1 =new BufferedImage(bff.getWidth(),bff.getHeight(),BufferedImage.TYPE_INT_RGB);
        Graphics ng =bff1.getGraphics();
        //养成看源代码的习惯,getRGB先走的是x轴,然后走的是y轴,bufferedImage也是这个样子的,先是宽度然后在是高度,不然可能发生越界的情况,因为获取的摄像头的大小是不能够确认的事情
    	for(int i=0;i<bff.getWidth();i++) 
    	{
   
    		for(int j=0;j<bff.getHeight();j++) 
    		{
   
    			//因为获取rgb值的时候是从上往下走的,在获取rgb值的时候越界了
    			int pixel=bff.getRGB(i, j);
    			Color color =new Color(pixel);
    			//(r,g,b)
    			int red =(int)(color.getRed()*0.299);
    			int green =(int)(color.getGreen()*0.587);
    			int blue =(int)(color.getBlue()*0.114);
    			Color newcolor =new Color(red+green+blue,red+green+blue,red+green+blue);
    			ng.setColor(newcolor);
    			ng.drawLine(i, j, i, j);
    		}
    	}
		return bff1;
    }
    public BufferedImage drawyh(BufferedImage bff) 
    {
   
    	BufferedImage bff1 =new BufferedImage(bff.getWidth(),bff.getHeight(),BufferedImage.TYPE_INT_BGR);
    	Graphics ng =bff1.getGraphics();
    	for(int i=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值