自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AlanWang4523

兰生幽谷,不以无人而不芳,不以穷困而改节!君子当如兰~

  • 博客(89)
  • 资源 (6)
  • 收藏
  • 关注

原创 Android FFmpeg 编译可执行命令程序(依赖动态库)

项目中有两种情况用到 FFmpeg :C++ 底层代码调用 FFmpeg 用于音视频解码Android 上层使用 FFmpeg 命令行工具用于音视频裁剪、分离、加水印等一般用法是编译一份 FFmpeg 静态库或动态库(大小 4M+)用于底层依赖和调用,再编译一份 ffmpeg 可执行程序(大小 4M+),但这样实际上项目中有两份 ffmpeg 核心库,会增加安装包体积。因此优化如下:编译一份 libffmepg.so 用于底层代码依赖和调用(大小 4M+);将 ffmpeg.c 等代码依赖

2020-07-15 12:09:33 1041 1

原创 MNN 静态库的编译及使用(libMNN.a 运行报错问题解决)

MNN 静态库编译及使用 libMNN.a 运行报错问题解决

2020-06-30 14:27:40 2969

原创 编译OpenCV Android库(自定义配置)

根据自己需要的模块交叉编译 Android OpenCV 库,如下面的脚本只编译了 opencv_core 、opencv_imgproc、opencv_video 三个模块,如果需要裁剪自定制,可以修改 build_opencv_modules 函数,打开或关闭你需要的模块。模块所需要依赖的其他模块可在 OptionArgs.txt 里查找 xxx_LIB_DEPENDS,xxx 为要编译的模块。比如,要编译 opencv_video,可以在 OptionArgs.txt 里搜索 opencv_video

2020-06-23 20:51:35 5026 4

原创 MNN 编译不过问题

/Users/Alan/work/VideoAudio/FaceDetect/MNN-master/3rd_party/flatbuffers/src/idl_gen_cpp.cpp:77:3: error: constructor for ‘flatbuffers::cpp::CppGenerator’ must explicitlyinitialize the const member ‘...

2019-10-30 20:39:12 1658

原创 OpenCV实现将任意形状ROI区域置黑(多边形区域置黑)

实现 opencv 多边形区域置黑,OpenCV 实现将任意形状ROI区域置黑

2019-10-23 20:06:19 6945

原创 C/C++ Main获取命令行参数

在用 C/C++ 写一些工具时,需要通过命令行传一些参数,这样就可以在命令行终端使用该工具或在脚本中使用该工具,从而实现批量处理。比如近期需要实现一个对文件进行加解密的工具,我需要通过命令行传递如下参数:需要处理的输入文件;处理类型:加密还是解密;处理多少长度;输出文件;1、函数说明本文采用的短参数,函数定义如下:#include <unistd.h> //系统头...

2019-09-28 13:41:17 11500 1

原创 OpenCV flip transpose 实现图像旋转90°、180°、270°

opencv 图像旋转,使用 opencv flip transpose 实现图像旋转 90 180 270

2019-09-10 20:34:25 9436 1

原创 Android 无线调试手机(WiFi 调试)

今天调试时手机没电了,USB 插在电脑上充电非常慢,因此想着试试无线调试,手机查找电源上快速充电。1、手机和电脑连接同一局域网(连同一个 WiFi)2、在手机的设置、网络连接查看连接的 WiFi 下手机的 IP 地址3、手机连上电脑,输入命令:adb tcpip <端口号>,<端口号> 可任意取,只要没被占用,如 6666 4、拔掉数据线输入命...

2019-05-27 20:55:14 18245 5

原创 Android JNI 编程之动态注册(设置返回 long float double 型数据)

jni静态注册和 jni动态注册,jni返回double型数据, jni返回float型数据,jni返回long型数据,jni返回java对象,jni返回传递对象静态注册理解和使用方式简单, 使用相关工具按流程操作就行, 编码出错率低JNI 层函数名特别长,且当需要更改类名,包名或者方法时, 需要按照之前方法重新生成头文件, 灵活性不高初次调用 native 函数时要根据函数...

2019-05-18 21:14:58 1196 1

原创 Android 使用 mp4parser 做视频拼接合并

做短视频拍摄时,在分段录制结束需要将多个视频片段拼接成一个视频文件,然后进入预览界面播放。有两种方案:方案一:使用 FFMpeg 进行视频拼接,命令如下:// inputListFilePath 为需要合并的文件列表文件,每行一个文件路径String cmd = "ffmpeg -y -f concat -safe 0 -i " + inputListFilePath + " -c co...

2019-04-16 01:07:07 4852 1

原创 Python从txt文件中读取float数据

有如下存在 txt 文件的数据,需要将其读取为 float 型数据并处理:0.000000000000000000e+00 0.000000000000000000e+000.000000000000000000e+00 0.000000000000000000e+001.000000000000000000e+00 5.876317942364757073e+031.0000000000...

2019-04-11 20:02:33 16564 7

原创 Mac 查找目录下包含某字符串的所有文件

如题,在需要查找的目录下,输入如下命令:grep -n "get_spg2lsf" -r ./该命令会查找当前目录及其子目录下所有包含指定字符串的文件,会列出文件位置、该行的内容以及行号。如下:...

2019-04-11 02:00:24 22340 1

原创 TensorFlow 安装指定版本:Could not find a version that satisfies the requirement tensorflow

Mac OS 安装 TensorFlow 出现如题错误。Collecting tensorflow==1.5 Could not find a version that satisfies the requirement tensorflow==1.5 (from versions: 1.13.0rc1, 1.13.0rc2, 1.13.1, 2.0.0a0)No matching dis...

2019-04-11 01:50:25 1507

原创 Failed to load the native TensorFlow runtime in Mac OS 10.11.6

当前环境:Mac OSX 10.11.6TensorFlow installed with pipTensorFlow version: 1.13.0Python version: 3.6.5执行:import tensorflow as tf 时报如下错误:Traceback (most recent call last): File "/Users/mikko/dev/wi...

2019-04-11 01:35:05 6028 2

原创 Python 降级到3.6版本的解决方案(Mac降低python版本)

Python 降级到3.6版本的解决方案,Mac降低python版本

2019-04-11 00:44:36 27334 1

原创 OpenCV C/C++实现图像拼接(opencv 贴小图到大图)

利用 OpenCV 实现将多张小图拼接成一张大图,并支持小图放任意位置。OpenCV C++实现图像拼接,opencv 贴小图到大图,opencv 贴多张图到大图

2019-03-06 21:53:58 7990 1

原创 Android 使用 mp4parser 做视频裁剪

做音视频时我们很多时候需要做音视频裁剪,本文介绍使用开源库 [mp4parser](https://github.com/sannies/mp4parser) 做裁剪。使用时先在 gradle 中配置依赖:compile 'com.googlecode.mp4parser:isoparser:1.1.21'将 mp4parser 封装成音视频裁剪工具类:import android.t...

2018-11-20 20:59:47 5629 1

原创 OpenCV 绘制人脸检测框和关键点

在做人脸检测时,我们需要将检测的结果绘制到图片上查看效果,这时可以利用 OpenCV 的基本绘图函数将人脸检测框和人脸关键点绘制到原图上。关键代码如下:// TODO FaceDetectEngine 初始化cv::Mat image = cv::imread(test_file, cv::IMREAD_UNCHANGED);// 原始图像cv::Mat gray;cv::cvtCol...

2018-11-16 20:06:16 7566 2

原创 Python 用 OpenCV 显示文字 (6)

利用 OpenCV 自带的 putText() 函数绘制文字 并显示,其函数声明如下:cv2.putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])img:要画的圆所在的矩形或图像text:要绘制的文字org:文字在图像中的左下角坐标fontFa...

2018-11-15 20:35:40 14117 3

原创 Python 用 OpenCV 画椭圆 (5)

利用 OpenCV 自带的 ellipse() 函数画椭圆并显示,其函数声明如下:cv2.ellipse(img, center, axes, rotateAngle, startAngle, endAngle, color[, thickness[, lineType[, shift]]]) img:要画的圆所在的矩形或图像center:椭圆的中心点axes:椭圆的长半轴和短半轴的...

2018-11-13 21:38:13 6980 1

原创 Python 用 OpenCV 画矩形 (4)

利用 OpenCV 自带的 rectangle() 函数画矩形并显示,其函数声明如下:cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) img:要画的圆所在的矩形或图像pt1:矩形左上角的点pt2:矩形右下角的点color:线条颜色,如 (0, 0, 255) 红色,BGRthickness...

2018-11-13 21:15:03 42383 6

原创 Python 用 OpenCV 画线 (3)

利用 OpenCV 自带的 line() 函数画直线并显示,其函数声明如下:cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])img:要画的圆所在的矩形或图像pt1:直线起点pt2:直线终点color:线条颜色,如 (0, 0, 255) 红色,BGRthickness:线条宽度lineType:- ...

2018-11-12 22:11:27 49768 1

原创 Python 用 OpenCV 画点和圆 (2)

利用 opencv 里自带的circle() 函数可以绘制以一个点为圆心特定半径的圆,其函数的声明如下:cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]])函数参数含义如下:img:要画的圆所在的矩形或图像center:圆心坐标,如 (100, 100)radius:半径,如 10color...

2018-11-10 21:20:21 131057 4

原创 Python 安装 OpenCV 及显示图像 (1)

1、Python 安装 OpenCVPython 安装 OpenCV 的命令很简单,就一条命令,如下(前置条件是已安装 pip):pip install opencv-python出现如下输出即表示安装成功:2、Python 代码中用 OpenCV 读取图片并显示#!/usr/bin/python# -*- coding: UTF-8 -*-import numpy as np...

2018-11-10 20:08:17 2261

原创 OpenCV Mat 数据读写

 1、创建 Mat 对象:// 创建一个 320x240 的 8 位无符号型 4 通道全 0 的 Matcv::Mat mBGRAImg = cv::Mat::zeros(320, 240, CV_8UC4);// 创建一个 320x240 的 8 位无符号型 1 通道全 0 的 Matcv::Mat mGrayImg = cv::Mat::zeros(320, 240, CV_...

2018-11-07 21:39:22 15149

原创 gradle 配置生成不同 ABI 版本及不同名字的 APK

def releaseTime() { return new Date().format("yyyy-MM-dd-HH-mm")}import com.android.build.OutputFileandroid { ... splits { abi { enable true reset() ...

2018-10-19 16:34:14 3571

原创 FileDownLoader https 无法下载问题(SSLHandshakeException)

1、问题:项目下载改为 https 协议,连接代理后使用 liulishuo 的 FileDownLoader 无法下载,抛出异常如下:javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not fou...

2018-08-30 20:31:12 4948 2

原创 使用 cmake 编译可执行文件

如我们写好源代码和主函数,可以不使用 IDE 直接用命令行编译成可执行文件。比如需要提供一个工具程序提供给后端通过命令行调用。可能有的人认为直接编译成可执行文件给别人不就 OK 了吗?但问题来了,你本地编译的平台和架构可能和别人的不一样,直接给别人编译好的可执行文件可能跑不起来,举个栗子,我本地是 Mac 电脑,我编译好的执行文件在 Mac 电脑上跑没问题,但服务端同学是 Linux 的就跑不...

2018-08-15 13:15:04 44872 2

原创 编程技巧之用 do{}while(false) 进行多错误处理

编程中我们经常会遇到这样的问题,一个函数中有很多处理逻辑,每个步骤都有可能出错,对于出错的要做相同的错误处理,错误出口很多。那么通常我们怎么处理呢?一般有两种处理方式:if else 多层嵌套如下,可以看到这种处理嵌套逻辑特别深void function() {    if(a != null) {        if(b() == true) {            if(c() == ...

2018-06-30 15:47:01 1044

原创 Python 获取指定文件夹下的目录和文件

经常有需要扫描目录,对文件做批量处理的需求,所以对目录处理这块做了下学习和总结。Python 中扫描目录有两种方法:os.listdir 和 os.walk。一、os.listdir 方法os.listdir() 方法用于返回指定的目录下包含的文件或子目录的名字的列表。这个列表以字母顺序。其得到的是仅当前路径下的文件名,不包括子目录中的文件,如果需要得到所有文件需要递归。 它也不包括 '.' 和...

2018-06-30 15:04:27 65745

原创 Android 拦截音量键,控制系统媒体音量

在上一篇文章中介绍过,在做 SAPA 适配时由于其直连驱动层不经过 Android 的音量增益控制,所以调节系统媒体音量对音量改变无效。如果没有音乐在放的时候,按调节音量的键,默认调节的是铃声的音量,所以在使用 SAPA 播放音频时,因为不经过 Android 层,系统认为没有音乐播放,在按音量键时调节的是铃声音量无法控制播放音量。思路:调用系统 API 强制设置为控制媒体音量截获物理音量键的按键...

2018-06-06 09:19:55 8192

原创 Android 监听系统媒体音量变化

在做 SAPA 适配时由于其直连驱动层不经过 Android 的音量增益控制,所以调节系统媒体音量对音量改变无效。现要调节系统音量时也可以控制播放的音量,那么就需要监听系统音量变化,然后转换成增益给输出数据乘以对应比率从而实现对音量的控制。一般监听音量多是监听手机物理音量按键的点击事件,但是在音量控制面板拖动音量条改变音量就无法监听。那么我们需要分析无论是按音量键还是拖动音量条,系统都做了什么呢?...

2018-05-31 20:10:29 21915 10

原创 java.util.concurrent.ExecutionException

java.util.concurrent.ExecutionException在向项目中添加 .9 图片资源时编译出错,报出如下异常:FAILURE: Build failed with an exception.​* What went wrong:Execution failed for task ':app:mergeProductDebugResources'.&gt; Error...

2018-05-04 15:17:32 11306 1

原创 Python 获取命令行参数

一、sys 模块在 Python 中,通过 sys 模块中的 sys.argv 可以访问到所有的命令行参数,它的返回值是包含所有命令行参数的列表。sys.argv :是命令行参数列表len(sys.argv) :是命令行参数个数sys.argv[0]:参数1sys.argv[1]:参数2实例#!/usr/bin/python# -*- coding: UTF-8 -*-"""@Time   ...

2018-04-16 08:44:00 2814

原创 JNI 传递和返回基本参数

Java 中的基本类型包括 boolean,byte,char,short,int,long,float,double 这样几种,本文主要介绍上层向底层传递基本类型数据,以及底层向上层返回基本数据类型的情况。jni静态注册,jni动态注册,jni返回double型数据, jni返回float型数据,jni返回long型数据,jni返回java对象,jni返回传递对象

2018-03-31 08:07:13 10758 1

原创 CMake Error: undefined reference to 'vtable for IDenoise'

/Users/XXXXXXX/git/xxxxx/libraries/mediacore/src/main/cpp/audio/webrtc/IDenoise.h:12: error: undefined reference to 'vtable for IDenoise'  /Users/XXXXXXX/AndroidDev/sdk/ndk-bundle/toolchains/arm-lin

2017-11-09 11:40:35 1876

原创 CMake Error: shared library text segment is not shareable

在编译ffmpeg时遇到以下错误/Users/XXXXX/Alan/MyAndroidPro/FfmpegLib/app/src/main/cpp/libs/x86/lib/libavutil.a -lm -lz -latomic -lm "/Users/XXXXX/AndroidDev/sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/x...

2017-11-09 11:29:22 2230

原创 Audio WAV文件头格式

WAV文件头格式含义、代码生成WAV文件头及修改更新WAV文件头

2017-03-02 10:46:55 8110 1

翻译 Android OpenGL ES2.0编程教程系列之响应触摸事件(六)

原文链接像旋转三角形一样,通过预设程序来让对象移动对于吸引注意是很有用的,但是如果你想让你的OpenGL图形有用户交互呢?让你的OpenGL ES应用有触摸交互的关键是,扩展你的GLSurfaceView的实现重载onTouchEvent()方法来监听触摸事件。本节内容将向你展示如何监听触摸事件来让用户旋转一个图形。设置触摸事件为了你的OpenGL ES应用能够响应触摸事件,你必须

2016-05-29 15:46:36 1282

翻译 Android OpenGL ES2.0编程教程系列之添加运动(五)

原文链接在屏幕上绘制图形只是OpenGL的相当基础的特点,你也可以用其他的Android图形框架类来实现这些,包括Canvas和Drawable对象。OpenGL ES为在三维空间中移动和变换提供了额外的功能,并提供了创建引人注目的用户体验的独特方式。在本次课程中,你将进一步使用OpenGL ES学习怎样为你的图形添加一个旋转动作。旋转一个图形用OpenGL ES 2.0来旋转一个

2016-05-29 15:10:33 937

android页面滑动切换(带多种动画效果)

android程序,滑动屏幕切换页面,anim文件夹里有进、出的移动、缩放、旋转等多种切换动画效果文件。

2013-07-30

动态加载控件(用于图文并茂显示)

界面上有两个按钮,一个是动态加载textview,一个是动态加载imageview。适用于需要图文并茂(但不能预先知道textview和imageview的个数和位置)的显示界面。加载的控件长度超过屏幕时可以滚动。 如:从网络获取图文并茂的文章(事先不知道文字和图片的位置),可以通过图片标志和文字标志来动态添加textview和imageview

2013-09-02

Android OpenGL ES例程代码

这是Android开发指导中的OpenGL编程例子,详情请见博客:http://blog.csdn.net/u011520181/article/details/51525116

2016-05-29

JNI 传递和返回基本参数

本文件是 JNI 传递和返回基本参数的 Demo,详细介绍见博客:https://blog.csdn.net/u011520181/article/details/79765336,无法资源分设置 0 分,也可以去博客下面的 github 地址下载

2018-03-31

Android 手机sdcard目录或文件的拷贝 移动 删除 递归

一个关于文件操作的静态工具类 实现手机SD卡目录或文件的拷贝 移动 删除 递归 Demo中有详细注释 在进行Demo测试时 建议先把测试的文件备份一下在测试 否则删除就找不回了 具体可见我博客http: blog csdn net u011520181 article details 39555745">一个关于文件操作的静态工具类 实现手机SD卡目录或文件的拷贝 移动 删除 递归 Demo中有详细注释 在进行Demo测试时 建议先把测试的文件备份一下在测试 否则删除就找不回了 具体可见我博客http: blog csdn net u011520181 a [更多]

2014-09-26

Android 设置Wifi热点、打开与关闭的监听

设置手机WiFi便携热点,并且监听热点打开与关闭,详情请参见我的博客http://blog.csdn.net/u011520181/article/details/46496377

2015-06-14

空空如也

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

TA关注的人

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