![](https://img-blog.csdnimg.cn/20210815093227155.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
流媒体技术|视觉计算|图形处理实战教程
你要偷偷学习音视频,ffmpeg, opencv, 视觉计算,图像处理, 然后惊艳所有人。
优惠券已抵扣
余额抵扣
还需支付
¥39.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
张音乐
家人们点点关注
展开
-
JavaCV - 人脸美颜磨皮算法
左边是原图,右边是磨皮后的图像。原创 2023-05-31 20:23:04 · 561 阅读 · 0 评论 -
JavaCV - 中值滤波去雾算法
其他的一些介绍和背景交代可以去看原文,这里我直接给出论文的算法核心步骤。就是输入图像,需要求去雾后的输出图像。,所以我们只要计算出全局大气光值。原创 2023-05-27 11:03:35 · 302 阅读 · 2 评论 -
JavaCV - 图像暗通道去雾
要求暗通道的图像是比较容易的,先求出每个像素在3个通道的最小值,存到一个二维Mat中(灰度图),然后做一个最小值滤波,滤波的半径由窗口大小决定,这里窗口大小为WindowSize,公式表示为WindowsSize=2∗Radius+1,其中Radius表示滤波半径。总之,自然景物中到处都是阴影或者彩色,这些景物的图像的暗原色总是很灰暗的。作者在论文中,统计了5000多副图像的特征,也都基本符合这个先验。其中t(x)^就是公式(8)中那个t(x)部分,因为我不知道怎么用markdown语法写这个符号。原创 2023-05-27 10:38:20 · 1376 阅读 · 1 评论 -
JavaCV - 白平衡(完美反射算法)
完美反射算法实现白平衡效果原创 2022-07-03 13:29:39 · 547 阅读 · 5 评论 -
JavaCV实现年龄 | 性别 识别(优化版)
一、效果展示之前的系列教程中写了关于怎么使用Java + OpenCV 进行人脸性别和年龄的识别,但是不同的环境需要安装和搭建OpenCV运行环境,现在用JavaCV重新修改了一下.思路啥的都一样,就不写了,主要是分享一下代码.二、完整代码 <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platfor原创 2022-04-10 12:55:32 · 3869 阅读 · 0 评论 -
Java + Dlib实现人脸识别
一. 效果展示在学习人脸识别的过程中,刚开始我是从opencv开始学习的,后来发现还有一种使用dlib来检测的方法,并且,在图像处理中,有些美颜功能,例如数字化妆功能,也需要使用dlib来实现,所以就研究了一下如何在Java中使用dlib,很遗憾的是国内的社区,网站,论坛并没有关于如何用Java结合dlib来实现人脸识别的教程或者文章,大多数都是使用C++或者python, 所以想分享一下如何实现Java + Dlib来实现人脸识别.在实现功能之前,我们需要做一些基础准备,就是将dli原创 2022-03-12 15:58:36 · 3721 阅读 · 27 评论 -
JavaCV - 基于自定义色条进行灰度图上色
一.效果展示原图效果图二.需求背景仿照或者替换 Qt在进行2D图像显示时使用的色条接口,可以让灰度图基于其设计的色条进行上色,比如设置1为红色,0.55为黄色,0.45为绿色,0为蓝色,那么灰度图就会在归一化后按照从蓝到红(从小到大)进行渐变色上色。三. 完整代码 <dependency> <groupId>org.bytedeco</groupId> <artif.原创 2022-01-16 13:59:32 · 382 阅读 · 0 评论 -
JavaCV - 毛玻璃特效
一.效果图二.实现原理实现原理很简单,就是在遍历像素点的时候, 从周围随机选一个像素点,用来取代当前像素点,这样处理后,就会显得图片有一些模糊。如何从周围随机选择一个像素点使用随机函数offset 随机数选取范围, 数值越大, 效果越明显三.完整代码 <dependency> <groupId>org.bytedeco</groupId> <artifactId>原创 2022-01-08 12:55:08 · 2232 阅读 · 0 评论 -
JavaCV - 天空滤镜
一. 效果展示原图加滤镜后, 这是夜晚拍的照片, 可见加天空滤镜效果不是很好, 白天拍的加这种滤镜效果挺好, 或者只单单加饱和度或者对比度效果也挺好.二.实现原理需要用到前几篇博客做的工具函数JavaCV - 调整图像饱和度JavaCV - 调整图像明度JavaCV - 调整图像对比度JavaCV - 调整图像阴影JavaCV - 调整图像高光JavaCV - 图像色温调整风景-天空滤镜参数为:饱和度+35; 明度+20; 对比度+15;..原创 2021-11-20 17:02:11 · 3426 阅读 · 5 评论 -
JavaCV - 图像色温调整
一.效果展示原图+50色温-50色温二.实现原理色温是表示光线中包含颜色成分的一个计量单位。从理论上说,黑体温度指绝对黑体从绝对零度(-273℃)开始加温后所呈现的颜色。黑体在受热后,逐渐由黑变红,转黄,发白,最后发出蓝色光。当加热到一定的温度,黑体发出的光所含的光谱成分,就称为这一温度下的色温,计量单位为“K”(开尔文)。 在图像处理中,对图像进行色温调整也是常见的操作之一。一般情况下,认为暖色偏黄色,冷色偏蓝色,基于此逻辑,在提高色...原创 2021-11-20 15:46:06 · 2914 阅读 · 7 评论 -
Java | JavaCV | OpenCV 单通道Mat矩阵和二维数组相互转换
package com.biubiu.example;import org.bytedeco.javacpp.BytePointer;import org.bytedeco.javacpp.opencv_core.Mat;import org.bytedeco.javacpp.opencv_core.Scalar;import org.bytedeco.javacpp.opencv_core.Size;import static org.bytedeco.javacpp.opencv_cor.原创 2021-11-16 20:35:35 · 2248 阅读 · 0 评论 -
JavaCV - 图像锐化
一. 效果展示原图+50 锐化-50 锐化二.完整代码package com.biubiu.example;import org.bytedeco.javacpp.BytePointer;import org.bytedeco.javacpp.opencv_core.Scalar;import org.bytedeco.javacpp.opencv_core.Size;import org.bytedeco.javacpp.opencv_core.Mat...原创 2021-11-16 20:24:58 · 952 阅读 · 8 评论 -
JavaCV - 灰度图像归一化到0-255
/** * 图像的归一化,目的是使不同成像条件(光照强度,方向,距离,姿势等)下拍摄的同一张照片具有一致性。 * @return */ private static Mat one(Mat gray) { Mat clone = gray.clone(); int height = gray.rows(); int width = gray.cols(); int pixMax = 0, p...原创 2021-11-15 19:26:04 · 2046 阅读 · 0 评论 -
JavaCV - 调整图像高光
一. 效果展示原图加50高光效果图二.完整代码package com.biubiu.example;import org.bytedeco.javacpp.BytePointer;import org.bytedeco.javacpp.opencv_core.Mat;import org.bytedeco.javacv.CanvasFrame;import org.bytedeco.javacv.Frame;import org.bytedeco.javacv.OpenC.原创 2021-11-14 15:20:49 · 2035 阅读 · 1 评论 -
JavaCV - 调整图像阴影
一、效果展示如图所示为 阴影 + 50 后的前后对比效果.原图处理后二、实现思路以后补三、完整代码 <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>1.4.3</ver原创 2021-11-13 17:13:30 · 1478 阅读 · 3 评论 -
JavaCV - 处理BGR通道数据|读取|修改
/** * 获取并修改BGR通道数据 * @param img * @return */ private static Mat dealBGR(Mat img) { int height = img.rows(); int width = img.cols(); for(int i = 0; i < height; i++) { for (int j = 0; j <...原创 2021-11-13 17:07:28 · 852 阅读 · 0 评论 -
JavaCV - 调整图像明度
一、效果展示如图所示为明度 + 50 后的前后对比效果.二.实现思路以后再补充三.完整代码 <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>1.4.3</version>.原创 2021-11-13 16:59:25 · 489 阅读 · 1 评论 -
JavaCV - 调整图像对比度
一、效果展示二、实现思路暂时不想写了, 参考 翟天保Steven 的博客三、完整代码 <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>1.4.3</version>原创 2021-11-13 16:53:30 · 758 阅读 · 1 评论 -
JavaCV - 调整图像饱和度
一、效果展示二.实现思路以后补, 暂时懒得写了. 可以参考别人的三.完整代码 <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>1.4.3</version> .原创 2021-11-13 16:46:15 · 1777 阅读 · 1 评论 -
JavaCV实现视频人脸检测
之前写的文章 Java + OpenCV 实现视频人脸检测 很多同学反馈说要搭建环境很麻烦, 加上我换了电脑, 本身自己的opencv环境也丢了, 搭建环境的痛实在不想经历第二遍, 所以还是研究了以下不需要搭建opencv环境, 直接使用JavaCV来处理.下面是效果图片, 原理以及为什么要这么做都写在注释里面了, 直接使用就可以运行. 而且不区分环境,我在Mac和Linux上测试过都是OK 的.演示视频下面是源码, 如果要打开本地摄像头的话, 使用被注释掉的OpenCVFrame..原创 2021-11-03 20:02:13 · 1379 阅读 · 3 评论 -
JavaCV实现图片人脸检测
之前写的文章Java + OpenCV 实现图片人脸检测很多同学反馈说要搭建环境很麻烦, 加上我换了电脑, 本身自己的opencv环境也丢了, 搭建环境的痛实在不想经历第二遍, 所以还是研究了以下不需要搭建opencv环境, 直接使用JavaCV来处理.下面是效果图片, 原理以及为什么要这么做都写在注释里面了, 直接使用就可以运行.而且不区分环境,我在Mac和Linux上测试过都是OK 的.pom引入 <dependency> &l...原创 2021-11-03 17:16:14 · 1362 阅读 · 0 评论 -
Java + OpenCV 对口罩检测/脸部遮挡检测/面具检测
PS: 因为本人换了电脑,opencv环境没有了, 所以没有测试过, 介意的请勿订阅, 以免发生经济纠纷.下面提供思路和源码, 都是根据以往经验徒手进行写的代码思路:1.打开本地摄像头2.遍历每一个图像帧检测出人脸3.对人脸进行灰度化4.戴白色面具的人,大多数时候 OpenCV 无法正确识别人脸。为了克服这个困难,使用“阈值”函数转换黑白图像5.检测出每一个人脸上是否有嘴,或者鼻子.这里演示是用的嘴.6.如果检测出嘴,则没有带口罩,如果没有检测出嘴,则带了口罩或者面具,面纱遮挡等原创 2021-10-30 13:59:57 · 1440 阅读 · 0 评论 -
JavaCV 实现怀旧滤镜
package com.biubiu.example;import org.opencv.core.CvType;import org.opencv.core.Mat;import org.opencv.highgui.HighGui;import org.opencv.imgcodecs.Imgcodecs;/** * @author :张音乐 * @date :Created in 2021/10/23 下午2:41 * @description:怀旧滤镜 * @email: z.原创 2021-10-24 05:00:00 · 354 阅读 · 0 评论 -
Java + OpenCV 对图像进行水平投影和竖直投影
核心代码如下,我也没有运行过,从 python 翻译过来的一份代码, 自己测试试一下效果吧. 介意的请勿订阅.package com.biubiu.example;import org.opencv.core.Mat;import org.opencv.core.Point;import org.opencv.core.Scalar;import org.opencv.highgui.HighGui;import org.opencv.imgcodecs.Imgcodecs;impor.原创 2021-10-24 08:15:00 · 461 阅读 · 0 评论 -
Java + OpenCV 实现素描特效(JavaCV)
一、效果展示二、完整代码package com.biubiu.example;import org.opencv.core.Core;import org.opencv.core.CvType;import org.opencv.core.Mat;import org.opencv.core.Size;import org.opencv.highgui.HighGui;import org.opencv.imgcodecs.Imgcodecs;import org.openc.原创 2021-04-27 09:27:28 · 867 阅读 · 0 评论 -
Java + OpenCV 实现老照片特效滤镜
一、效果展示二、完整代码package com.biubiu.example;import org.opencv.core.Core;import org.opencv.core.Mat;import org.opencv.highgui.HighGui;import org.opencv.imgcodecs.Imgcodecs;/** * @author :张音乐 * @date :Created in 2021/4/26 下午4:05 * @description:老照.原创 2021-04-26 16:07:24 · 830 阅读 · 0 评论 -
Java + OpenCV 实现更换背景色 (以 证件照 蓝色幕布替换成红色背景 为例)(JavaCV)
一、效果展示左边为原图, 右边为更换背景色后的图片, 图片来源网上 , 如有侵权, 请联系我进行删除.二、完整代码package com.biubiu.example;import org.opencv.core.Core;import org.opencv.core.Mat;import org.opencv.core.Scalar;import org.opencv.core.Size;import org.opencv.highgui.HighGui;import or.原创 2021-04-26 16:07:45 · 3509 阅读 · 11 评论 -
Java + OpenCV 实现更换背景图片(绿色幕布切图)(JavaCV)
一、效果展示更换后效果图: 色素参数选的不准, 有点糊. + => 二、完整代码package com.biubiu.example;import org.opencv.core.Core;import org.opencv.core.Mat;import org.opencv.core.Scalar;import org.opencv.core.Size;import org.opencv.highgui.Hi...原创 2021-04-26 16:08:32 · 2011 阅读 · 0 评论 -
Java + OpenCV 实现图片分类(JavaCV)
一、效果展示因为跟前面的性别和年龄识别大体思路相似, 都是使用dnn +Caffe , 关于dnn, 和 caffe的概念我也是边学边用逐渐了解的, 不懂的可以去搜. 本文纯粹以应用和实战来讲, 不讲原理.想要 bvlc_googlenet.prototxt , bvlc_googlenet.caffemodel , synset_words.txt 这三个文件的可以 评论区留下邮箱..如果你自己去官网下载. ...原创 2021-04-26 16:08:58 · 1496 阅读 · 16 评论 -
Java + OpenCV 实现图片合成(JavaCV)
一、效果展示合成结果原图二、完整代码package com.biubiu.example;import org.opencv.core.Core;import org.opencv.core.Mat;import org.opencv.highgui.HighGui;import org.opencv.imgcodecs.Imgcodecs;/** * @author :张音乐 * @date :Created in 2021/4/26 下午3:0...原创 2021-04-27 09:26:50 · 1471 阅读 · 0 评论 -
分享一个免费的图片去水印网站
一、 软件截图二、操作说明1、先上传图片2、点击选择区域,在图片上选择要去水印的区域,可支持同时选择多个区域。3、点击开始去水印4、保存去水印的图片到本地。5、如果不满意可再次选择。三、免费体验地址http://121.196.27.184:8080/...原创 2021-01-10 14:42:45 · 20125 阅读 · 1 评论 -
Java + OpenCV 实现图片年龄识别(JavaCV)
一、效果展示还是同样的图片, 先来一张效果图压压惊. 看过上一篇文章的同学都知道, 前面已经实现了 人脸的性别识别, 所以这篇文章主要讲的是年龄识别. 大部分代码都是一样的, 主要是调用的dnn网络模型不一样, 预测的结果集合不一样. 其他的都一样. 不懂的往下看.二、技术实现思路1、人脸检测与画框1.1 图片转换成灰色(降低为一维的灰度,减低计算强度)1.2 图片上画矩形1.3 使用训练分类器查找人脸1.4 如果对于人脸检测不是很熟悉的话可以参考往期文章, 传送门J..原创 2021-04-18 13:54:53 · 1748 阅读 · 0 评论 -
Java + OpenCV 实现图片性别识别(JavaCV)
一、效果展示如图所示, 需要实现在图片上检测出人脸并标识出性别, 因为网络上大部分文章都是基于python的, 我个人对于Java 又比较情有独钟, 所以, 花费了一两天专门研究了一下, 本人对于opencv的掌握程度也是处于入门阶段, 整理了一些资料, 并请教了一些大学同学, 才将python + opencv性别识别的代码翻译出来. 如果觉得本文对你有用, 请一键三连吧.听说点赞关注加收藏的人都是帅哥.(ps: 图片来源于github项目faceai, 顺手就拿来用啦)二、技术实现思路1原创 2021-04-17 10:48:30 · 1966 阅读 · 3 评论 -
Java + OpenCV 实现图片修复(去水印)(JavaCV)
一、效果展示如效果图显示运行结果, 左边为原图, 右边为去水印(修复)后的图片.二、技术实现思路1. 图片转换成灰色(降低为一维的灰度,减低计算强度)2. 对灰度图片进行高斯模糊操作, 这里进行高斯模糊的作用就是减少图像噪声, 降低细节层次,往深一点的原理, 这里不作探讨3. 对高斯模糊之后的图像进行二值化操作, 图像二值化是将图像上的像素点的灰度值设置为0或255, 也就是将整个图像呈现出明显的黑白效果, 图像的二值化使得图像变得简单, 而且数据量减小, 能凸显出目标轮廓...原创 2021-04-15 10:31:55 · 3319 阅读 · 2 评论 -
Java + OpenCV 实现图片人脸检测
一、功能展示识别一种图上的所有人的脸,并且标出人脸的位置,画出人眼以及嘴的位置,展示效果图如下:二、技术实现思路图片转换成灰色(降低为一维的灰度,减低计算强度)图片上画矩形使用训练分类器查找人脸三、pom引入的jar包说明 <properties> <java.version>1.8</java.version> <!-- javacpp当前版本 --> <j..原创 2021-01-22 23:06:38 · 3390 阅读 · 10 评论 -
Java + OpenCV 实现视频人脸检测
一、实现思路调用电脑的摄像头,把摄像的信息逐帧分解成图片,基于图片检测标识出人脸的位置,把处理的图片逐帧绘制给用户,用户看到的效果就是视频的人脸检测。效果预览:二、实现步骤使用OpenCV调用摄像头并展示。(1)、获取摄像头 VideoCapture camera = new VideoCapture(); // 参数0表示,获取第一个摄像头。 camera.open(0);参数0表示,获取第一个摄像头。(2)、显示摄像头.原创 2021-01-23 18:06:20 · 1740 阅读 · 0 评论 -
golang-ffmpeg-goav:视频拉流解码成YUVJ420P
前言goav是在ffmpeg基础上封装了一层,我们算是站在别人的肩膀上,尽管goav还有很多不足的地方,这个暂且不谈。当然这次写的这篇算是回归底层实现了,用别人封装好的可能两三行就可以搞定的东西。一、说明以及依赖go get github.com/giorgisio/goav.git二、实现功能1、ffmpeg拉流(视频源可以是文件和流媒体(rtsp/rtmp/hls/flv等等))2、将视频帧解码为yuvj420p图像数据三、实现代码package mainimpo原创 2020-09-29 16:11:27 · 4992 阅读 · 7 评论 -
golang-ffmpeg-goav拉流解码器,支持视频拉流解码并转换为YUV、BGR24或RGB24等图像像素数据
一、功能设计YUV在流媒体协议中用的较多(数据少,节省流量带宽),在图像处理应用较多的是BGR和RGB像素数据。我们已经获取到了YUV数据,那么把YUV转成BGR或者RGB需要再进行一次转换要使用这些工具包之前建议先了解一下goav,如果以前是从事Java工作的,就会对于maven很清楚,可以管理jar包。go get命令下载的东西可以理解为jar包。java中调用ffmpeg可以使用javacpp, goav就相当于go语言版本的javacpp,封装了很多操作ffmpeg api的方法,提供给你直原创 2020-09-29 14:30:21 · 3451 阅读 · 0 评论 -
FFMPEG命令大全
前言FFMPEG是特别强大的专门用于处理音视频的开源库。你既可以使用它的API对音视频进行处理,也可以使用它提供的工具,如 ffmpeg, ffplay, ffprobe,来编辑你的音视频文件。本文将简要介绍一下 FFMPEG 库的基本目录结构及其功能,然后详细介绍一下我们在日常工作中,如何使用 ffmpeg 提供的工具来处理音视频文件。FFMPEG 目录及作用libavcodec...原创 2019-05-29 20:07:27 · 517 阅读 · 0 评论 -
GoLang音视频转码
一、搭建好开发环境这一步不会的可以百度参考一下这个教程https://www.runoob.com/go/go-environment.html安装ide ,我用的是goland, 个人感觉比较好用支持的平台Linux OS X Windows二、下载第三方工具包go get github.com/xfrr/goffmpeg三、音频转码程序可以直接运行。并且同时支持音频和视频的播放提供的例子是将m4a转码成mp3格式。如果想转换其他格式,只需要修改文件后缀名.原创 2020-09-28 14:31:54 · 3530 阅读 · 0 评论