美颜相机毕设项目零基础教学

news/2024/10/30 20:55:33/

美颜相机开发手册

1.数字化图像底层原理

2.文件读取图片,操作图片矩阵

3.图像滤镜算法实现

4.项目结构设计

5.图像存储,附加功能实现(画笔/P图/贴纸…)

6.卷积图像处理算法实现

7.图像识别原理

8.二维码的生成与识别

9.以图搜图功能实现

美颜相机第二天:实现美颜相机的各种滤镜,以及滤镜的一些基本原理讲解。重构项目结构:
首先重构项目的基本结构:规划出一个图片显示界面,一个按钮监听界面:

package wenhao777;import wenhao666.CameraUi;import javax.swing.*;
import java.awt.*;public class CameraUI {String[] btns = {"原画","马赛克","圆马赛克","灰度","油画","二值化"};BtnsActionListener btnsActionListener = new BtnsActionListener();public void initUI(){JFrame jf = new JFrame();jf.setTitle("美颜相机");jf.setSize(1100,800);jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//设置两个界面来分别画图//图像显示界面JPanel showPanel = new JPanel();showPanel.setBackground(Color.lightGray);//按钮显示界面JPanel btnPanel = new JPanel();btnPanel.setBackground(Color.white);btnPanel.setPreferredSize(new Dimension(200,0));initBtns(btnPanel);jf.add(showPanel,BorderLayout.CENTER);jf.add(btnPanel,BorderLayout.WEST);jf.setVisible(true);btnsActionListener.setPanel(showPanel);}//为界面添加按钮public void initBtns(JPanel btnPanel){for (int i = 0; i < btns.length; i++) {JButton btn = new JButton(btns[i]);btn.setBackground(Color.white);btn.setPreferredSize(new Dimension(95,35));btn.addActionListener(btnsActionListener);//将按钮添加到页面上btnPanel.add(btn);}}public static void main(String[] args) {new CameraUI().initUI();}
}

然后是为按钮添加监听器的界面:

package wenhao777;import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class BtnsActionListener implements ActionListener {JPanel showPanel;String path = "F://新建文件夹//美颜相机复盘//img//6.png";FilterTools filterTools = new FilterTools(path);@Overridepublic void actionPerformed(ActionEvent e) {Graphics g = showPanel.getGraphics();String acation = e.getActionCommand();if(acation.equals("原画")){filterTools.drawOriginalImage(g);}if(acation.equals("灰度")){filterTools.drawGrayImage(g);}}public void setPanel(JPanel showPanel) {this.showPanel=showPanel;}
}

最后是写滤镜的实现类:

package wenhao777;import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;public class FilterTools {int[][] imgarr;BufferedImage bufferImg;int width;int height;FilterTools(String path){getImagePix(path);width = bufferImg.getWidth();height = bufferImg.getHeight();}//将图片转化为二维数组/二维矩阵public int[][] getImagePix(String path){File file = new File(path);try {bufferImg = ImageIO.read(file);imgarr= new int[bufferImg.getWidth()][bufferImg.getHeight()];for (int i = 0; i < bufferImg.getWidth(); i++) {for(int j =0;j<bufferImg.getHeight();j++){imgarr[i][j]=bufferImg.getRGB(i,j);}}return imgarr;} catch (IOException ioException) {ioException.printStackTrace();}return null;}//原图public void drawOriginalImage(Graphics g){g.drawImage(bufferImg,0,0,null);}//灰度public void drawGrayImage(Graphics g){for (int i = 0; i <width ; i++) {for(int j=0;j<height;j++){int pix = imgarr[i][j];int red = (pix>>16)&0xFF;int green = (pix>>8)&0xFF;int blue = (pix>>0)&0xFF;int gray = (red+green+blue)/3;Color color = new Color(gray,gray,gray);g.setColor(color);g.fillOval(i,j,1,1);}}}
}

这里面暂时写了实现的两个方法,一个原画,一个灰度,实现效果如下:

美颜相机原画效果
美颜相机灰度
美颜相机灰度效果展示
如有更多要求,请关注B站up主兰习习,请大家为up主一键三连哦!


http://www.ppmy.cn/news/437094.html

相关文章

美颜相机的基本功能实现

美颜相机的基本功能实现 基本知识 在学习了在标准绘制图形库中进行简单的递归图像实现后&#xff0c;我们把目光聚焦到了对于复杂图片文件的处理上&#xff0c;在这里需要简单介绍一下关于图像色彩的知识&#xff0c;以及缓存图片类的介绍。 图形色彩参数“ARGB” 在一个复…

linux 相机软件,镜像相机app

镜像相机app带给用户更多特别的拍摄滤镜和效果&#xff0c;这里提供了两种拍摄方式&#xff0c;一种是普通的拍摄效果&#xff0c;还有一种拍摄出来的是左右镜面对称的效果&#xff0c;并且镜像相机app中随时可以进行图片编辑和美化功能&#xff0c;强大的修图和丰富的滤镜贴纸…

补充 | 美颜相机卡顿trace分析

和你一起终身学习&#xff0c;这里是程序员Android 经典好文推荐&#xff0c;通过阅读本文&#xff0c;您将收获以下知识点: 一、美颜相机录制视频 trace 分析概览二、Camera FWK 与 camera HAL 录像交互三、美颜相机app 与SurfaceFlinger 交互四、美颜相机卡顿丢帧trace 分析 …

Java程序结构模板——美颜相机案例

我们以美颜相机举例&#xff0c;分析一个程序都需要什么。 1、UI界面&#xff1a;大部分需要交互的程序都需要UI界面来实现交流互动。 2、监听器&#xff1a;人们在UI中的操作需要监听器来捕捉和执行相应的命令。 3、工具类&#xff1a;将执行命令的方法单独封装成工具类&#…

P8美颜相机的实现

美颜相机 一. 基础知识二. 图片处理将一个图片转化为一个二维数组并封装 三.写一个界面并添加画板和按钮四. 添加监听器并将图片信息传递给监听器中五.马赛克六.灰度七.素描美白油画轮廓检测 一. 基础知识 一幅图就是无数个像素点组成&#xff0c;可以看成宽w高h的二维数组图像…

大疆口袋相机美颜怎么设置_大疆(DJI)Pocket2 | 深度测评口袋相机:超多配件随心搭,自带美颜的拍摄助手!-极果...

写在前面 你真的需要一台DJI Pocket 2吗?嘿,大家好~我是抖音博主无情剪辑狗,作为一名摄影教学类博主很高兴能体验到DJI Pocket 2,经过自己一个星期的体验,来和大家分享一下这款产品我的心得体会以及什么样的人适合入手这样一台设备。 下面通过这则视频可以先简单的了解一…

基于OpenCV和OpenGL 的简易美颜相机

版本信息 AndroidStudio 3.5.2 OpenCV 4.1.2 OpenGL 2 OpenCV是什么 维基百科 在本Demo中&#xff0c;OpenCV实现面部识别功能 OpenGL是什么 维基百科 在本Demo中&#xff0c;OpenGL实现美颜功能 配置OpenCV环境 在AndroidStudio中新建C项目 下载OpenCV Android版 …

美颜相机的设计与实现

美颜相机的实现&#xff08;利用Webcam&#xff09; 如何实现美颜相机&#xff1f; 首先&#xff0c;需要导入三个外部jar包来调用摄像头 美颜相机是要调用我们的电脑摄像头实时获取我们的视频数据&#xff0c;视频就是由一帧一帧的图片组成的&#xff0c;所以我们需要先将一…