自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

徐福记456

让分享成为习惯,让开源促进成长

  • 博客(176)
  • 资源 (48)
  • 问答 (1)
  • 收藏
  • 关注

原创 音视频开发成长之路与音视频知识总结

音视频涉及语音信号处理、数字图像处理、信息论、封装协议、编解码、渲染、流媒体协议、网络传输、视频特效、音频特效等等。而音视频在现实生活中扮演着越来越重要的角色,比如视频会议、短视频、直播、播放器、语音聊天等。所以,从事音视频工作是一件比较有意义的事情,挑战与机遇并存。本文主要从六个方面进行介绍:音视频开发基础、音视频进阶成长、音视频工作方向、音视频开源库、流媒体协议与音视频书籍。...

2022-01-14 01:34:32 39312 14

原创 ijkplayer播放器架构从原型到升级

ijkplayer是一款跨平台的播放器,支持Android与iOS端,核心部分基于ffmpeg,支持Android的mediacodec硬解与iOS的videotoolbox硬解,视频图像采用OpenGL进行渲染。许多主流播放器都使用ijkplayer作为播放方案。接下来我们从核心播放流程、内核播放架构、时序图、状态机、播放器整体架构进行详细分析。

2021-11-20 16:21:44 25024

原创 android端采用FFmpeg进行视频剪切、转码与添加水印

前两篇文章介绍过FFmpeg进行音频处理、音视频处理:android端采用FFmpeg进行音频混合与拼接剪切, android端采用FFmpeg进行音视频合成与分离。关于FFmpeg涉及文件导入以及cmake配置,可查看第一篇文章。现在接着探讨视频相关处理:视频转码、视频剪切、视频截图、添加水印、视频转Gif动图、图片合成视频。1、视频转码视频转码包括格式、码率、尺寸大小等转换,-f代

2018-01-25 02:16:16 48504 30

原创 FFmpeg音频处理——音频混合、拼接、剪切、转码

接触FFmpeg有一段时间了,它是音视频开发的开源库,几乎其他所有播放器、直播平台都基于FFmpeg进行二次开发。本篇文章来总结下采用FFmpeg进行音频处理:音频混合、音频剪切、音频拼接与音频转码。采用android studio进行开发,配置build.gradle文件:defaultConfig { ...... externalNativeBui

2018-01-23 02:58:47 50179 98

原创 android端使用openCV与深度学习实现车牌识别

车牌识别的应用场景随处可见:高速公路上超速抓拍、小区门口关卡、车库入口关卡,甚至出现在车载设备上。它的工作原理大致这样:使用摄像头充当“眼睛”,使用openCV与深度学习充当“大脑”。实时车牌识别工作步骤:摄像头抓拍—>openCV初步定位车牌位置—>二次确认车牌位置的左右上下边界—>车牌倾斜校正—>车牌字符切割—>车牌字符识别。其中,车牌检测是车牌识......

2018-01-11 01:30:54 49257 183

原创 Android端极致画质体验之HDR播放

高动态范围HDR视频通过扩大亮度分量的动态范围(从100cd/m2到1000cd/m2),以及采用更宽的色彩空间BT2020,提供极致画质体验。从Android10开始,支持HDR视频播放。

2023-11-29 21:40:54 2113

原创 WebRTC之丢包重传协议

丢包处理可以使用FEC前向纠错、NACK丢包重传。上一篇文章咱们介绍过前向纠错,现在来探讨丢包重传。首先是接收端发送基于RTCP反馈的请求,发送端收到请求后重传指定packet包。

2023-09-24 12:21:58 706

原创 WebRTC之FEC前向纠错协议

FEC前向纠错用于丢包恢复,对媒体包进行异或或其他算法生成冗余包进行发送。如果接收端出现丢包,可以通过冗余包恢复出原始的媒体包。FEC的代价是增加码率带宽,所以一般会根据网络状况、丢包率来动态调整FEC冗余系数,也会结合NACK/ARQ丢包重传使用。WebRTC使用的FEC包括:ULP、flex、RED三种协议。接下来,我们主要分析ULP的协议结构。

2023-08-27 13:26:40 1217

原创 H.266/VVC视频编码原理探索

在2020年7月,H.266/VVC的标准规范正式面世。据统计,VVC的编码压缩率比HEVC提升一倍,支持RPR参考帧重采样、SCC屏幕内容编码等新技术。这意味着在5G时代,VVC视频编码让4K、8K超高清视频成为可能。

2023-07-03 12:07:36 1279

原创 探索MediaPipe自定义机器学习模型

MediaPipe支持人脸识别、目标检测、图像分类、人像分割、手势识别、文本分类、语音分类。每个模块都有对应的模型,但是原有模型可能比较大、推理耗时比较长,我们可以自定义模型来进行进行优化。

2023-06-27 14:09:41 3013 1

原创 探索MediaPipe的人像分割

MediaPipe是Google开源的计算机视觉处理框架,基于TensorFlow来训练模型。图像分割模块提供人像分割、头发分割、多类分割。本文主要探索如何实现人像分割,当然在人像分割基础上,我们可以做背景替换、背景模糊。

2023-06-26 17:47:38 3942

原创 探索MediaPipe检测人脸关键点

MediaPipe是Google开源的计算机视觉处理框架,基于TensorFlow来训练模型,支持人脸识别、人脸关键点、目标检测追踪、图像分类、人像分割、手势识别、文本分类、语音分类等。我们可以使用CPU来推理,也可以选择GPU加速推理。在滤镜特效场景,经常需要用到人脸关键点。

2023-06-26 12:11:11 4787 6

原创 探索OpenCV的AI实现视频超分

OpenCV除了使用光流算法与普通插值实现图像视频超分,还提供AI深度学习实现视频超分。算法模型包括:edsr、espcn、fsrcnn、lapsrn,实现超分的倍数有2、3、4、8。通过AI实现的视频超分比传统算法的效果更好,图像更清晰。在opencv_contrib外置库的dnn_superres模块,就是用AI实现的图像/视频超分。接下来,我们对比AI算法、双三次插值、最近邻插值、LANCZOS插值的超分效果。通过计算图像的PSNR、SSIM来评估超分质量。

2023-06-21 15:24:00 1350

原创 探索OpenCV的光流算法视频超分与源码实现

​在OpenCV4.0以后,视频图像超分模块已经迁移到opencv_contrib独立仓库。在视频超分有两种形式:结合光流算法实现超分、使用CNN卷积神经网络实现超分。在这里主要探索光流算法实现视频超分,然后进一步分析源码实现。

2023-06-18 21:41:12 1807

原创 OpenCV的级联分类器训练

​​使用增强级联的弱分类器包括两个主要阶段:训练和检测阶段。对象检测教程中有描述使用基于 HAAR 或 LBP 模型的检测阶段。这里主要介绍训练增强分类器级联所需的功能,包括:准备训练数据、执行实际模型训练、可视化训练。

2023-06-17 14:02:19 2116 3

原创 探索iOS之Metal标准库

Metal标准库包括:通用函数、整型函数、关系函数、数学函数、矩阵运算、SIMD运算、几何函数、纹理函数等。接下来让我们走进Metal标准库的世界。

2023-06-14 12:25:12 1189

原创 探索iOS之Metal编程指南

iOS推出Metal渲染库为了取代OpenGL。Metal有自己的Shader语言,渲染效率比OpenGL高。在这里我们一起探索:Metal使用C++的限制、预处理定义、动态链接配置、GPU编译配置、设备坐标系、视口坐标系、纹理坐标系、矢量类型、矩阵类型、采样器状态、矩阵相乘。

2023-06-13 21:11:06 3015 2

原创 探索LowLatency的HLS低延迟直播协议

HLS全称为HTTP Live Streaming,其中m3u8作为描述协议,指向一系列切片文件。支持多码流与自适应码率,支持广告无缝播放,支持CMAF协议的低延时直播,也支持CDN动态选择。

2023-06-11 21:46:18 1047

原创 OpenCV转换HDR图像与源码分析

我们常见的图像位深一般是8bit,颜色范围[0, 255],称为标准动态范围SDR(Standard Dynamic Range)。SDR的颜色值有限,如果要图像色彩更鲜艳,那么就需要10bit,甚至12bit,称为高动态范围HDR(High Dynamic Range)。OpenCV有提供SDR转HDR的方法,而逆转换是通过Tone mapping实现。

2023-06-11 12:41:14 3073 2

原创 探索iOS自定义ijkplayer画中画播放

iOS提供AVPictureInPictureController用于画中画播放控制,但是只能绑定AVPlayer使用,对于开发者来说挺头痛的。在iOS 15.0后呼之欲出,支持SampleBufferDisplayLayer自定义数据源显示图层,意味着我们可以自定义第三方播放器实现画中画。以ijkplayer为例,让我们一起探索如何支持画中画播放。

2023-06-03 19:02:36 3549 7

原创 探索iOS转场动画

iOS提供图像转场动画,可实现酷炫的转场特效。动画包括:溶解、折叠、复印机、闪烁、翻页、波纹、滑动等等。

2023-05-27 18:57:56 1524

原创 探索iOS之CoreImage框架

CoreImage提供图像处理、人脸识别、图像增强、图像滤镜、图像转场。它操作的数据来自Core Graphics、Core Video、Image IO,使用CPU或GPU进行渲染。CoreImage对底层实现进行封装,为上层提供简单易用的API。

2023-05-27 13:58:21 1227

原创 探索iOS之多摄像头预览架构

在iOS13.0开始支持多摄像头预览AVCaptureMultiCamSession,然后iOS15.0增加支持摄像头画中画预览。在使用之前,我们通过isMultiCamSupported()判断是否支持多Camera同时预览。

2023-05-22 10:12:40 1009 2

原创 探索iOS之CoreAudio核心音频框架

iOS的CoreAudio分为三层:应用服务层、驱动层、硬件层。其中,应用服务层包括:AudioQueue Service、AudioPlayer Service、AudioSession Service、AudioFile Service、AudioUnit等。

2023-05-18 12:27:12 871

原创 探索iOS之AudioUnit音效框架

iOS的AVAudioUnit提供的音效包括:混响、延迟、均衡器、失真、变速、变调等。按照类型划分为Audio Effect和Time Effect,其中Audio Effect包括混响、延迟、均衡器和失真,而Time Effect主要是变速、变调。

2023-05-16 12:08:11 1141

原创 探索iOS之AVFoundation框架

AVFoundation框架的业务层主要是AVKit和UIKit,内核层包括CoreVideo、CoreAudio、CoreMedia、VideoToolBox等。AVFoundation作为iOS的音视频框架,提供音视频播放、录制、编辑、编解码、音效设置等。

2023-05-15 14:36:46 1055 1

原创 iOS播放与编辑HDR视频

在iPhone12发布后,支持使用Dolby Vision来录制HDR视频。至此,升级到iOS14.1系统后,已经支持录制、播放、编辑和导出HDR视频。

2023-05-14 18:07:33 1008 2

原创 安全可靠的SRT实时传输协议

Secure Reliable Transport(SRT)是安全、可靠、低延时的多媒体实时传输协议。SRT协议使用AES进行数据加密,运用FEC进行前向纠错,并且有流量控制、拥塞控制。类似于QUIC协议,SRT采用UDP代替TCP,在应用层提供发送确认机制、ARQ自动重传,减少端到端的延迟。

2022-12-04 17:02:44 3185

原创 一文掌握OpenGL的shader内置函数

OpenGL ES有大量的GLSL内置函数,包括:三角函数、指数函数、通用函数、浮点函数、几何函数、矩阵函数、矢量关系函数、纹理函数、原子函数、图像函数、插值函数、着色器函数等。

2022-10-24 20:00:25 3354

原创 Miracast投屏协议深入剖析

Miracast由WiFi联盟制定,以WiFi-Direct、IEEE802.11为无线传输标准,允许手机向电视或其他接收设备进行无线投送视频、图片。和Miracast类似的投屏协议,还有Airplay、DLNA、chromecast等,现在主要对今天主角Miracast协议展开分析。

2022-10-06 16:11:59 6389 1

原创 走进音视频的世界——Opus编解码协议

​Opus是一种开源免费的音频编解码器,支持音乐和语音,具有低延时、带内FEC、DTX、PLC等特点,默认22.5ms延时,非常适用网络实时传输。官网:https://www.opus-codec.org。Opus协议收录于RFC6716,使用SILK和CELT两种编码。

2022-09-01 21:45:38 3822

原创 走进音视频的世界——RGB与YUV格式

在图像的世界里,一般使用RGB作为存储格式。而在视频的世界里,一般使用YUV作为压缩存储格式。有时候面试官会问:为什么视频使用YUV来压缩存储,而不用RGB?YUV与RGB有什么区别,两者如何转换的?常见的RGB格式有哪些,常见的YUV格式又有哪些?手机摄像头的预览格式是什么,如何转换为YUV420P的?我们带着这些问题,来揭开RGB与YUV格式的面纱。............

2022-08-07 22:33:36 4941 1

原创 走进音视频的世界——mp3封装格式

MP3,全称是MPEG Audio Layer3,利用人耳对高频声音信号不敏感的特性,结合心理声学模型,把时域信号转换为频域信号,并划分多个频段,对不同频段使用不同压缩率进行压缩。整体压缩率达到1:10,甚至1:12。...

2022-07-28 21:24:02 1389

原创 走进音视频的世界——FLV视频封装格式

FLV全称为Flash Video,是一种流媒体视频格式。特点是体积小、封装简单、方便存储与传输。常见的http-flv推流直播就是使用flv格式,rtmp推流也默认支持flv格式。FLV和RTMP都是adobe公司开发的。

2022-07-25 21:57:12 658

原创 C++最佳实践之常用库介绍

C++的常用库包括:algorithm、chrono、iostream、future、memory、map、unordered_map、queue、regex、set、string、sstream、stdexcept、thread、vector、mutex等。熟悉这些C++库对我们开发有很大帮助,我们结合代码实践来介绍。.........

2022-07-06 15:40:55 14059

原创 C++最佳实践之常用关键字

C++的常用关键字包括:auto、decltype、try、catch、class、constexpr、new、delete、const_cast、static_cast、dynamic_cast、reinterpret_cast、explicit、export、friend、mutable、using、namespace、noexcept、nullptr、operator、private、public、static_assert、template等...............

2022-06-29 22:09:53 12001

原创 C语言最佳实践之库文件介绍(下)

C语言的库文件包括:pthread线程、assert断言、string字符串、time时间、math数学运算、std开头的标准库、sys开头的系统库等。其中,标准库有stdalign.h、stdarg.h、stdatomic.h、stdbool.h、stddef.h、stdint.h、stdio.h、stdlib.h。系统库有sys/mman.h、sys/stat.h、sys/ioctl.h、sys/file.h。本篇文章主要介绍std标准库和sys系统库。...............

2022-06-05 00:16:57 11851 1

原创 C语言最佳实践之库文件介绍(上)

C语言的库文件包括:std开头的标准库、assert断言、sys开头的系统库、string字符串、time时间、math数学运算、pthread线程等。其中,标准库有stdalign.h、stdarg.h、stdatomic.h、stdbool.h、stddef.h、stdint.h、stdio.h、stdlib.h。系统库有sys/mman.h、sys/stat.h、sys/ioctl.h、sys/file.h。............

2022-05-27 12:11:13 13940 2

原创 C++最佳实践之编程建议

本文介绍C++的编程建议基于C++之父Bjarne Stroustrup编写的《A Tour of C++》,包括通用指南、命名空间、异常处理、成员函数、虚函数、构造函数、模板、容器、stl标准库、线程与并发控制。

2022-05-04 23:26:18 16925

原创 c语言最佳实践之关键字

c语言的关键字包括:基本类型、void空类型、条件语句、循环语句、跳转指令、类型修饰符等。其中类型修饰符包括:const、extern、inline、static、volatile、register、restrict。下面按照功能划分,结合代码实例进行介绍。

2022-04-22 18:43:27 6017

Android基于socket的TCP通信

基于socket套接字的TCP通信,定时发送心跳包以保持长连接,使用守护线程来守护心跳线程,保证心跳线程持续工作。如果断开连接,启动重连接机制,随着重连接次数增加,连接时间拉长,如果重连接次数达到10次,认为网络已断开,放弃连接服务端。(待完善,客户端离线消息应该使用数据库保存,等网络重新建立连接,推送给服务端。)

2017-04-16

仿微信底部栏透明度渐变效果并且带红点提醒和未读数统计

仿微信底部栏透明度渐变效果,当前页面底部栏颜色逐渐变浅,将要切换到的页面底部栏颜色逐渐变深。并且可设置红点提醒和未读数统计,当然不需要显示了也可以隐藏。

2016-12-15

google为android打造的响应式编程agera

google为android打造的响应式编程agera,类似rxjava与rxandroid、rxbus、rxbinding的结合体,提供五大核心:content、database、net、rvdatabinding、rvadapter

2016-11-12

android客户端语音聊天

android客户端的语音聊天:从录音到发送再接收播放。支持手势上滑取消发送,自设定录音时长,10s倒计时提醒,未读语音消息红点提示,未读语音连续播放,可暂停播放,支持切换播放模式(听筒播放与扬声器播放)。

2016-11-10

带动画的弧形仪表盘统计控件

弧形仪表盘统计控件,根据总数自动标志刻度线,弧形中间可显示当前人数与总人数以及百分比,进度条发生改变时有动画渐变效果,调用简单只需传入总人数与当前人数。

2016-11-06

android插件化加载并启动外部apk

采用360提供的DroidPlugin方案,通过插件化加载安装,并启动外部apk。需要为插件预申请对应权限。

2016-11-01

仿支付宝咻一咻波纹扩散动画

仿支付宝咻一咻波纹扩散动画,使用属性动画组合播放,可设置波纹圆圈个数、放大倍数、播放延时时间、圆圈半径、圆圈颜色

2016-10-30

利用RecyclerView实现垂直滑动的ViewPager

利用自定义RecyclerView实现垂直滑动的ViewPager,在垂直方向可以上下滑动,换页过程中加上切入切出的动画。做成签到列表,点击签到(模拟)请求网络成功后,提示签到成功延迟2s,该页面从签到列表移除。

2016-10-22

群成员@提醒

首先,在编辑框输入@字符,跳转到选择群成员界面:支持多选、全选、反选、根据姓名与手机号码搜索。选择完成点击确定后,选中的群成员自动填充到编辑框,并且用spannable上色。点击群成员区域,设置光标落在尾处,支持删除。模拟未读@消息提醒,右上角有悬浮按钮,点击后滑动到未读消息处。

2016-10-07

android与js互相调用

android调用js方法向网页输入文字,js调用android本地相册图片、调用摄像头拍照、调用本地视频播放。

2016-10-07

类似微信QQ分享我的位置

与微信QQ的即时消息中分享位置相似,点击查看位置按钮即可定位我的当前位置,支持地理位置模糊搜索,有位置列表可选择,地图支持缩放、拖动查看。返回经纬度、地址与位置截屏,使用自定义控件展示位置截屏图片附着所处地址,点击图片可查看位置详情。

2016-09-22

支持拍照的图片选择器

可设置选择图片最大数量,支持拍照与本地相册选择,支持手势缩放与拖动预览。采用facebook开源的图片加载库fresco进行图片浏览。图片尺寸与手机屏幕适配,按比例压缩不变形。采用recylerView展示选中图片,支持添加、删除与点击预览。

2016-09-20

android利用windowmanager实现悬浮窗

核心在于WindowManager,通过它创建一个LayoutParams对象,然后利用该对象设置flag、gravity、xy坐标点。它提供三个方法:addView()、updateLayout()、removeView()。分别对应是添加view、更新view、移除view。主要分析更新view的实现过程:实现触摸事件监听,重写onTouch()方法,在ActionDown时,利用getRawX和getRawY得到x1、y1,在ActionMove时,利用getX和getY获取移动过程的x2、y2,两者作差后作为更新的view对应的xy坐标,调用updateLayout()实现更新。

2016-09-15

垂直换行滚动广告

自定义一个控件MarqueeView实现动画切入切出的垂直换行,可设置动画时间、换行时间价间隔,控制广告的播放与暂停,动态配置广告。

2016-09-12

Android自定义GridView长按拖动排序

android自定义GridView长按拖动排序,类似支付宝首页,震动提示,固定最后一个“更多”item。退出应用程序后,保存修改的item位置到数据库,实现记住修改位置。

2016-03-18

android自定义GridView拖拽排序

android自定义GridView长按拖动排序,类似支付宝首页,震动提示,固定最后一个“更多”item。退出应用程序后,保存修改的item位置到数据库,实现记住修改位置。

2016-03-18

android人脸识别

基于android平台,实现在线人脸识别、检测、聚焦,离线人脸检测,动态视频人脸检测(支持多脸),正确识别率达到99%,带着眼镜也可以正确识别。

2016-01-23

android多线程断电续传下载文件

android平台根据文件大小,可设置线程数,下载记录保存在数据库,下载完毕删除记录,实现断电续传下载。

2016-01-22

android客户端远程操作数据库

基于android客户端(ADT22、API18),通过HTTPGet与服务端通信,在URL传输参数指令,读取服务端反馈回来的结果,实现远程操作MySQL数据库。服务端基于MyEclipse10环境,使用servelet+struts2+tomcat,接收客户端HTTP请求,实现连接数据库,对数据库增删查改等。

2016-01-21

android操作MySQL数据库

基于android平台,通过JDBC连接MySQL数据库,实现增删查改操作

2016-01-21

rfc3711_srtp.pdf

srtp为安全加密的rtp传输,增加ssl握手协议

2022-01-09

rfc3489_STUN.pdf

WebRTC的打洞过程,使用STUN会话遍历访问防火墙

2022-01-09

rfc7826_rtsp.pdf

rtsp实时传输流协议,包括register、setup、play、pause、teardown等控制

2022-01-09

rfc5506_RTCP.pdf

rtcp音视频实时传输控制协议,统计丢包、延迟

2022-01-09

neon指令硬件加速_CodingForNeon.pdf

neon指令实现ARM平台的硬件加速,SIMD单指令多数据,寄存器并行运算

2022-01-09

hls直播协议_rfc8216_hls.pdf

hls直播协议,描述hls工作原理、m3u8结构、ts流传输

2022-01-09

混响音效_HybridReverb.pdf

混响音效原理介绍与控制参数

2022-01-09

android平台的车牌识别so库

支持车牌的实时识别,支持蓝色、黄色、绿色新能源等车牌,识别耗时比较短,大概单个车牌是180ms,识别率比较高

2019-02-23

android平台的车牌识别

基于openCV的车牌检测结合深度学习进行车牌识别,支持蓝色、黄色、新能源车牌

2019-01-06

基于ORM的数据库框架Room

基于ORM的数据库框架Room,Android原生API,官方推荐使用,类似GreenDAO数据库。

2018-09-24

window平台的nginx rtmp服务器

window平台的nginx rtmp服务器,点击nginx.exe就可以开启服务,在网页输入rtmp推流地址就可以实时拉流直播,也可以使用ijkplayer或者ffplay进行播放

2018-07-12

Android端基于TensorFlow进行图像分类

Android端基于TensorFlow进行图像分类,使用Assets目录训练好的样本库和标签文件,识别率相当准确。

2018-06-30

android端基于深度学习的车牌识别

android端,基于openCV与深度学习,实现快速准确的车牌识别。平均识别耗时350ms左右,采集100样本识别准确率达到95%。识别过程:1、使用openCV确定车牌左右、上下区域;2、车牌倾斜判断与校正;3、滑动切割字符;4、深度学习对每个字符进行识别

2018-04-23

android端采用FFmpeg实现音频拼接/剪切/混音与转码

android端采用FFmpeg,传入命令行调用run()方法,实现音频拼接/剪切/混音与转码

2018-01-23

android端实时车牌识别

android端,基于openCV与深度学习,实现快速准确的车牌识别。平均识别耗时350ms左右,采集100样本识别准确率达到95%。识别过程:1、使用openCV确定车牌左右、上下区域;2、车牌倾斜判断与校正;3、滑动切割字符;4、深度学习对每个字符进行识别

2018-01-09

android注入dex实现热修复

android通过反射注入dex到dexElements数组,实现bug的热修复

2018-01-05

NDK实现人脸抠图

android客户端,使用NDK实现人脸检测-->人脸抠图-->人脸替换

2018-01-01

android版美颜宠萌相机

android平台的美颜相机,基于openCV进行人脸检测,添加各种宠萌效果

2018-01-01

ndk处理图片:添加文字和图片水印

android平台,ndk处理图片,添加文字和图片水印,可灵活控制水印的位置

2017-12-27

使用NDK拼接长图

使用NDK对多张图片进行拼接,先对每张图片进行预处理:压缩,剪裁宽度高度一致,最后得到一张长图,看起来效果很酷。美图秀秀的必备技能。

2017-12-27

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除