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图片美颜处理,视频美颜处理的更多相关文章

  1. Matlab从一系列图片导出AVI视频,导出GIF动图

    平台:Win7,Matlab 2014a 从一系列图片导出AVI视频的M代码如下: clear all; % 清除变量 % 官方示例,命令窗口输入“doc VideoWriter” writerObj ...

  2. 没有内涵段子可以刷了,利用Python爬取段友之家贴吧图片和小视频(含源码)

    由于最新的视频整顿风波,内涵段子APP被迫关闭,广大段友无家可归,但是最近发现了一个"段友"的app,版本更新也挺快,正在号召广大段友回家,如下图,有兴趣的可以下载看看(ps:我不 ...

  3. opencv3.2.0实现连续图片合成avi视频

    ##名称:利用videowriter实现多张连续图片合成avi视频 ##平台:QT5.7.1+OpenCV3.2.0 ##日期:2017年12月10日 /**************新建QT控制台程序 ...

  4. opencv图片转幻灯片视频

    /*g++ *.cpp `pkg-config --cflags --libs opencv` -std=c++11*/ #include <opencv2/opencv.hpp> usi ...

  5. Linux 桌面玩家指南:05. 发博客必备的图片处理和视频录制神器

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  6. jQuery图片灯箱和视频灯箱

    在一些前端页面中经常需要文件上传,为了美观,我们经常做一个灯箱来显示我们选择的文件, 而不是简单的input标签. html 代码:这个是多图片上传 <div class="layui ...

  7. DEDECMS:解决BMP、jpeg图片或MP4视频无法上传和在后台无法显示

    一.BMP图片无法上传解决方法: 1.修改配置文件: 在include-->dialog的文件夹下, select_images_post.php--> 把 $sparr = Array( ...

  8. JS下载单个图片、单个视频;批量下载图片,批量下载视频

    下载单张图片 import JSZip from "jszip"; import FileSaver from "file-saver"; downloadIa ...

  9. 02 HTML基础-图片和音视频

    1.HTML中的图片 HTML5的<figure>和<figcaption>为图片提供了一个语义容器,在标题和图片之间建立了清晰的联系.<figcaption>元素 ...

  10. Nginx防盗链的3种方法 文件防盗链 图片防盗链 视频防盗链 linux防盗链

    Nginx 是一个很牛的高性能Web和反向代理服务器, 它具有有很多非常优越的特性: 在高连接并发的情况下,Nginx是Apache服务器不错的替代品,目前Web服务器调查显示Apache下降Ngni ...

随机推荐

  1. selenium库浅析

    selenium库浅析 基于4.3 pip install selenium安装好后,在sitepackages下 2个主要的目录,common和webdriver 1- common 该目录一共就一 ...

  2. 在deepin上使用Fleet开发SpringBoot 3.0.0项目

    前言 Fleet被称为是由 JetBrains 打造的下一代 IDE,目前出于公测状态,可以免费下载使用. SpringBoot 3.0.0最小支持是JDK 17,这或许是对于JDK8的断舍离迈出的重 ...

  3. 在 Linux 环境(Ubuntu)下安装 Slurm 和 OpenMPI

    安装 Slurm 从软件源安装 slurm-wlm(每个节点都需要装的执行工具).slurm-client(客户机装的提交命令的工具).munge(节点间通信插件) sudo apt install ...

  4. ndk开发之native层访问java层

    一.native层访问java层的成员变量 java层的成员变量可以分为实例变量和静态变量,不过他们的访问方法比较类似,可以分为以下三步: 获取java类对应的jclass对象 获取需要访问的成员变量 ...

  5. 产品代码都给你看了,可别再说不会DDD(七):实体与值对象

    这是一个讲解DDD落地的文章系列,作者是<实现领域驱动设计>的译者滕云.本文章系列以一个真实的并已成功上线的软件项目--码如云(https://www.mryqr.com)为例,系统性地讲 ...

  6. GameFramework摘录 - 2.访问器模式(Version、Logger)

    访问器模式 Version.Logger等基础模块,功能相对固定但拥有几套不同的行为(如开发版本和正式版本不同),采用访问器模式,便于调整功能或复用 public static class Versi ...

  7. 基于iptables防火墙堵漏

    之前在网上流传个段子:发现自己电脑被入侵,最有效的办法是即拔掉网线~ 虽然只是个段子却说明一旦机器发现漏洞被入侵,阻断入侵刻不容缓,无论对个人电脑和业务服务器都是如此. 商业服务器虽然有各种防护措施, ...

  8. 一起来探索CSS中margin属性的奥秘吧!!

    作者:WangMin 格言:努力做好自己喜欢的每一件事 众所周知 margin属性 是用来声明当前所设置或者指定元素所有外边距的宽度,或者设置各边上外边距的宽度.一直以来我认为它是一个很简单的属性,但 ...

  9. [SWPUCTF 2021 新生赛]非常简单的逻辑题

    一道简单的代码逆向,根据提供的py代码写出逆向代码,没怎么做过这种题开始没什么思路,原来直接暴力就好 直接写出暴力代码

  10. 记一次有趣的hwclock写RTC的PermissionDenied错误

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明   无 前言   稍微接触过嵌入式板卡的,基本都知道嵌 ...