javacv图片美颜处理,视频美颜处理
javacv图片美颜处理,视频美颜处理
国产剧明星演戏自带十级滤镜,是众所周知的秘密;
使用opencv也能实现一定的美颜效果:
一、图片美颜

代码
package top.lingkang.test.demo;
import org.bytedeco.opencv.opencv_core.*;
import org.bytedeco.opencv.opencv_imgproc.*;
import java.io.File;
import static org.bytedeco.opencv.global.opencv_core.*;
import static org.bytedeco.opencv.global.opencv_imgcodecs.*;
import static org.bytedeco.opencv.global.opencv_imgproc.*;
/**
* @author lingkang
* Created by 2022/6/6
*/
public class Demo01 {
public static void main(String[] args) {
Mat result = new Mat();
Mat image = imread("C:\\Users\\Administrator\\Desktop\\temp\\2.png");
int level = 18;// 值越大,过滤强度越大
bilateralFilter(image, result, level, level * 2, level / 2);
File out = new File("d:/2.png");
if (out.exists())
out.delete();
imwrite(out.getPath(), result);
}
}
二、视频美颜

视频美颜代码
package top.lingkang.test.demo;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
import org.bytedeco.javacv.Frame;
import org.bytedeco.javacv.JavaFXFrameConverter;
import org.bytedeco.javacv.OpenCVFrameConverter;
import org.bytedeco.opencv.opencv_core.Mat;
import org.bytedeco.opencv.opencv_videoio.VideoCapture;
import static org.bytedeco.opencv.global.opencv_imgproc.bilateralFilter;
import static org.bytedeco.opencv.global.opencv_videoio.CAP_PROP_FRAME_HEIGHT;
import static org.bytedeco.opencv.global.opencv_videoio.CAP_PROP_FRAME_WIDTH;
/**
* @author lingkang
* Created by 2022/6/6
*/
public class Demo02 extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("最帅的↓↓↓↓↓");
primaryStage.setWidth(600);
primaryStage.setHeight(800);
ImageView imageView = new ImageView();
imageView.setFitWidth(550);
imageView.setFitHeight(750);
HBox box = new HBox();
box.getChildren().add(imageView);
primaryStage.setScene(new Scene(box));
primaryStage.show();
int level = 12;// 值越大,过滤强度越大
// 图像处理
new Thread(new Runnable() {
@Override
public void run() {
JavaFXFrameConverter fxFrameConverter = new JavaFXFrameConverter();
OpenCVFrameConverter openCVFrameConverter = new OpenCVFrameConverter.ToMat();
try {
// 调用摄像头
VideoCapture capture = new VideoCapture();
capture.set(CAP_PROP_FRAME_WIDTH, 600);
capture.set(CAP_PROP_FRAME_HEIGHT, 800);
if (!capture.open(0)) {
System.out.println("无法打开摄像头!");
return;
}
Mat mat = new Mat();
int i = 0;
while (true) {
// 读取
capture.read(mat);
Mat result = new Mat();
// 数值自行调整
bilateralFilter(mat, result, level, level, 100);
Frame convert = openCVFrameConverter.convert(result);
Image image = fxFrameConverter.convert(convert);
imageView.setImage(image);
Thread.sleep(100);
if (i > 200) {// 简单循环
capture.release();
capture.close();
break;
}
i++;
}
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
public static void main(String[] args) {
launch(args);
}
}
javacv图片美颜处理,视频美颜处理的更多相关文章
- Matlab从一系列图片导出AVI视频,导出GIF动图
平台:Win7,Matlab 2014a 从一系列图片导出AVI视频的M代码如下: clear all; % 清除变量 % 官方示例,命令窗口输入“doc VideoWriter” writerObj ...
- 没有内涵段子可以刷了,利用Python爬取段友之家贴吧图片和小视频(含源码)
由于最新的视频整顿风波,内涵段子APP被迫关闭,广大段友无家可归,但是最近发现了一个"段友"的app,版本更新也挺快,正在号召广大段友回家,如下图,有兴趣的可以下载看看(ps:我不 ...
- opencv3.2.0实现连续图片合成avi视频
##名称:利用videowriter实现多张连续图片合成avi视频 ##平台:QT5.7.1+OpenCV3.2.0 ##日期:2017年12月10日 /**************新建QT控制台程序 ...
- opencv图片转幻灯片视频
/*g++ *.cpp `pkg-config --cflags --libs opencv` -std=c++11*/ #include <opencv2/opencv.hpp> usi ...
- Linux 桌面玩家指南:05. 发博客必备的图片处理和视频录制神器
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- jQuery图片灯箱和视频灯箱
在一些前端页面中经常需要文件上传,为了美观,我们经常做一个灯箱来显示我们选择的文件, 而不是简单的input标签. html 代码:这个是多图片上传 <div class="layui ...
- DEDECMS:解决BMP、jpeg图片或MP4视频无法上传和在后台无法显示
一.BMP图片无法上传解决方法: 1.修改配置文件: 在include-->dialog的文件夹下, select_images_post.php--> 把 $sparr = Array( ...
- JS下载单个图片、单个视频;批量下载图片,批量下载视频
下载单张图片 import JSZip from "jszip"; import FileSaver from "file-saver"; downloadIa ...
- 02 HTML基础-图片和音视频
1.HTML中的图片 HTML5的<figure>和<figcaption>为图片提供了一个语义容器,在标题和图片之间建立了清晰的联系.<figcaption>元素 ...
- Nginx防盗链的3种方法 文件防盗链 图片防盗链 视频防盗链 linux防盗链
Nginx 是一个很牛的高性能Web和反向代理服务器, 它具有有很多非常优越的特性: 在高连接并发的情况下,Nginx是Apache服务器不错的替代品,目前Web服务器调查显示Apache下降Ngni ...
随机推荐
- 若依框架的startPage( )函数怎么自动关联查询SQL语句?
Question Description 使用JAVA语言的若依框架的时候,发现只要使用了startPage()函数, 并不需要前端传递分页的数据,也不需要注解,就能完成分页功能.预判他应该是使用类似 ...
- 数据泵(impdb)导入Oracle分片的数据库dump文件
数据泵(impdb)导入Oracle数据库 一.sqlplus登录目标数据库,创建导入的目录路径 #该目录要在导入的数据库本机建立,如果是docker就在容器内部创建 create directory ...
- linux常见命令(五)
用于文本内容处理的相关命令 sort uniq cut comm diff sort:对文件中数据进行排序,并将结果显示在标准输出上 命令语法:sort [选项] [文件] 选项 选项含义 -m 如果 ...
- Sunshine on my shoulders
https://music.163.com/#/song?id=1477706 Sunshine on my shoulders makes me happy照在我肩上的阳光让我欢乐Sunshine ...
- [AHOI2002] Kitty猫基因突变
我们不妨将所有权值打到一棵树上,这很容易想到. 考虑暴力,如果我们选择了 \(w\) 个点,修改后我们会从叶子节点依次合并去计算贡献. 很显然我们可以动态规划维护. \(f[p][w][0/1/2]\ ...
- Go函数介绍与一等公民
Go函数介绍与一等公民 函数对应的英文单词是 Function,Function 这个单词原本是功能.职责的意思.编程语言使用 Function 这个单词,表示将一个大问题分解后而形成的.若干具有特定 ...
- gson如何序列化子类
需求 目前有一个需求,不同对象有一些公共属性,分别也有一些不同的属性.对方传过来的json字符串中,把这些对象组成了一个数组返回过来的.这样该如何反序列化呢? 举例 定义Person类.Student ...
- Typora +Picgo 搭建个人笔记
目录 Typora +Picgo 搭建个人笔记 一.Picgo +Github 搭建图床 1.基础设置 2. 将配置导出,方便下次使用 二.Typora:设置 : 1. 基本设置 2. 导出自动提交 ...
- Rustlings通关记录与题解
2023年6月19日决定对rust做一个重新的梳理,整理今年4月份做完的rustlings,根据自己的理解来写一份题解,记录在此. 周折很久,因为中途经历了推免的各种麻烦事,以及选择数据库作为未来研究 ...
- Maven 项目工程
maven打包java --jar1.安装jdk2.安装maven --安装非常简单 网上教程很多,此步骤忽略-- 3.配置jdk/maven环境变量 # java_jdk export JAVA ...