自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一航jason

坐标深圳、长沙 good job call Email:2690275567 qq

  • 博客(256)
  • 资源 (2)
  • 论坛 (3)
  • 收藏
  • 关注

原创 android架构设计之插件化、组件化

原文地址:http://blog.csdn.net/mhhyoucom/article/details/79000072 如今移动app市场已经是百花齐放,其中有不乏有很多大型公司、巨型公司都是通过app创业发展起来的;app类型更加丰富,有电子商务、有视频、有社交、有工具等等,基本上涵盖了各行各业每个角落,为了更加具有竞争力app不仅功能上有创性,内容也更加多元化,更加饱满,所以出现了巨大的工...

2018-01-08 10:21:50 37822 9

原创 《android framework常用api源码分析》之Activity启动流程

Activity的启动流程是一个源码分析非常重要的一个知识点,其实通过这篇学习你可以对android内部源码有个大致的了解,应为他耐括基本上最重要的几处只是,有binder机制、handler机制、antivity strack、context等重要内容。Activity的启动流程相对复杂一下,涉及到了Activity中的生命周期方法,涉及到了Android体系的CS模式,涉及到了Android中进程通讯Binder

2017-12-14 12:03:20 1726

原创 flutter CustomMultiChildLayout 自定义控件实现图片瀑布流效果

CustomMultiChildLayout允许我们通过delegate自定义子组件的布局约束、位置以及父组件的大小(父组件大小不依赖于子组件的情况下),和CustomSingleChildLayout基本一样,区别就是CustomSingleChildLayout包裹一个子控件,而CustomMultiChildLayout包裹多个。接下来我会用CustomMultiChildLayout 控件实现一个图片瀑布流墙的效果,效果如下:图片瀑布流 imgCustomMultiChildLayout控件

2021-06-09 14:21:05 40 1

原创 《FFmpeg 视频采集推流》 之 Android camera2 api 相机 预览 拍照

从 Android 5.0 开始,Google 引入了一套全新的相机框架 Camera2 api。现在主流机型基本上都在5.0,所以可以完全不用考虑camera1 api 兼容问题。Camera1 那寥寥无几的 API 和极差的灵活性早已不能满足日益复杂的相机功能开发。Camera2 的出现给相机应用程序带来了巨大的变革,因为它的目的是为了给应用层提供更多的相机控制权限,从而构建出更高质量的相机应用程序。camera2 api 优势:1、可以获取更多的帧(预览/拍照)信息以及手动控制每一帧的参数2、

2021-06-08 16:51:14 44 1

原创 Android 使用JS注入获取网页视频链接

Android 使用JS注入获取网页视频链接思路:1、通过js注入获取整个网页html。2、通过jsoup分析获取video播放器的数据源。一、开启webviewjs功能,注入js回调mWebView.addJavascriptInterface(new LocalAndroidObj(), "local_android_obj");// js 注入回调二、通过jsoup 分析网页,使用方法类似jQuery语法。 private class LocalAndroidObj{

2021-02-24 09:37:21 234 1

原创 android基于ffmpeg本地视频、在线视频、直播播放器 支持rtmp、rtsp、http等协议

最近做了一个支持onvif标准的摄像头管理程序,主要就是在局域网中通过程序控制摄像头获取摄像头视频流分发给广域网中的客户端设备;这里面用了onvif协议相关知识和ffmpeg视频流处理的相关知识。onvif相关的以后有机会再分享,今天主要是把android ffmpeg相关的东西分享一下。视频播放流程:解封装:常见封装格式有mp4、3gp、AVI等,这些封装格式包含了音视频流相关信息。每种封装格式都有自己的规则那么解封装就是按照规则分离出音视频数据。例如:mp4格式MP4(MPEG-4 Par

2020-09-11 16:02:03 580 1

原创 通过图片哈希值计算汉明距离来匹配人脸

opencv通过图片哈希值计算汉明距离来匹配人脸string xmlPath = "/data/data/org.opencv.samples.tutorial2/cache/lbpcascade_frontalface.xml";//识别并截取人脸Mat detectAndDisplay(Mat image) { CascadeClassifier ccf; ccf.load(xmlPath); vector<Rect> faces; Mat gray;

2020-08-13 15:39:33 363

原创 opencv中使用Caffe框架

Caffe,全称Convolutional Architecture for Fast Feature Embedding,是一个兼具表达性、速度和思维模块化的深度学习框架。由伯克利人工智能研究小组和伯克利视觉和学习中心开发。虽然其内核是用C++编写的,但Caffe有Python和Matlab 相关接口。Caffe支持多种类型的深度学习架构,面向图像分类和图像分割,还支持CNN、RCNN、LSTM和全连接神经网络设计。Caffe支持基于GPU和CPU的加速计算内核库,如NVIDIA cuDNN和Intel

2020-08-13 10:52:50 237

原创 opencv PCA主成分分析的使用

简介主成分分析(PCA)是提取数据集最重要特征的统计程序。PCA(Principal Components Analysis,中文名叫主成分分析,是数据降维很常用的算法。按照书上的说法是:寻找最小均方意义下,最能代表原始数据的投影方法。PCA的一个经典应用就是人脸识别,感兴趣的可以在网上搜eigenface。PCA的主要思想是寻找到数据的主轴方向,由主轴构成一个新的坐标系,这里的维数可以比原维数低,然后数据由原坐标系向新的坐标系投影,这个投影的过程就可以是降维的过程。使用//绘制向量轴void

2020-08-12 14:20:46 389

原创 SVM 简介和使用

简介Support Vector Machines(SVM)是由分离超平面正式定义的鉴别分类器。如何计算最佳超平面?我们来介绍用于定义超平面的符号:SVM简介其中β被称为权重向量,而β0称为偏差。也可以看看这和超平面更深入的描述,你可以在4.5节(发现分隔条件超平面书的):统计学习的要素通过 T. Hastie, R. Tibshirani和JH Friedman([172])。通过缩放β和可以以无限数量的不同方式表示最优超平面β0。作为惯例,在超平面的所有可能的表示中,选择的是SVM其

2020-08-12 10:32:02 477

原创 k-Nearest 最近邻分类算法

概述kNN算法又称为k最近邻(k-nearest neighbor classification)分类算法。所谓的k最近邻,就是指最接近的k个邻居(数据),即每个样本都可以由它的K个邻居来表达。kNN算法的核心思想是,在一个含未知样本的空间,可以根据离这个样本最邻近的k个样本的数据类型来确定样本的数据类型。该算法涉及3个主要因素:训练集、距离与相似的衡量、k的大小;主要考虑因素:距离与相似度。opencv中使用 Mat img = oneMat; Mat gray;

2020-08-12 09:14:40 199

原创 opencv features2d对象识别

对象识别代码: const Ptr<AKAZE> &detetor = AKAZE::create(); vector<KeyPoint> oneKeyPoint; vector<KeyPoint> twoKeyPoint; Mat oneDes, twoDes; //角点查找和特征向量计算描述 detetor->detectAndCompute(oneMat,

2020-08-11 11:06:49 168

原创 opencv_createsamples和opencv_traincascade命令

opencv_createsamples和opencv_traincascade命令opencv_traincascade -data dstBuild -vec new_vec.vec -bg sample_neg.dat -numStages 20 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos 100 -numNeg 700 -w 20 -h 20 -mode ALL -precalcValBufSize 1024 -precalcIdx

2020-08-10 17:47:22 101

原创 goodFeaturesToTrack和cornerSubPix使用

goodFeaturesToTrack和cornerSubPix使用?函数说明void cv::goodFeaturesToTrack(cv::InputArray image, // 输入图像(CV_8UC1 CV_32FC1)cv::OutputArray corners, // 输出角点vectorint maxCorners, // 最大角点数目double qualityLevel, // 质量水平系数(小于1.0的正数,一般在0.01-0.1之间)double minDistanc

2020-08-04 17:36:07 122

原创 cornerEigenValsAndVecs和cornerMinEigenVal角点检测

概念cornerEigenValsAndVecs和cornerMinEigenVal用于焦点检测cornerMinEigenVal函数作用计算梯度矩阵的最小特征值,用于角点检测void cornerMinEigenVal( InputArray src, OutputArray dst,int blockSize, int ksize = 3,int borderType = BORDER_DEFAULT );CornerEigenValsAndVecs作用计算图像块的特征值和特征向量,用于

2020-08-04 15:55:50 111

原创 opencv 相机标定获取去畸变矫正图像

opencv 相机标定获取去畸变图像 private void calcBoardCornerPositions(Mat corners,int mCornersSize, Size mPatternSize,double mSquareSize) { final int cn = 3; float positions[] = new float[mCornersSize * cn]; for (int i = 0; i < mPatternS

2020-07-29 13:49:42 495

原创 opencv 棋盘查找findChessboardCorners函数使用

opencv 棋盘查找findChessboardCorners函数使用 Size size=new Size(6,9); MatOfPoint2f pos=new MatOfPoint2f(); boolean chessboardCorners = Calib3d.findChessboardCorners(mat, size, pos, Calib3d.CALIB_CB_ADAPTIVE_THRESH|Calib3d.CALIB_CB_NORMALIZE

2020-07-24 14:22:41 371 1

原创 android使用opencv实现指纹验证效果

接触opencv有一段时间了,刚好公司最近有个指纹相关的功能,其中有个指纹特效晚上现成没有很好定制型所以就用opencv试着写了一个效果,不喜勿喷,高手绕道。效果图:项目源码:https://github.com/woshiliyihang/touchZW效果不是非常好但是修改定制简单,所需要准备的有两张图片:一个是红色前景,一个黑色背景,两张图片尺寸一样大。如果这个对你有帮助记得点赞哦 !!!...

2020-07-23 09:39:21 713

原创 android bitmap转成opencv的mat(图像扫描)

如何将bitmap的像素数据转换成opencv的mat对象?首先从bitmap中或者像素数据: String imgPath="/data/data/org.opencv.samples.tutorial2/cache/test_img.png"; bitmap = BitmapFactory.decodeFile(imgPath); ByteBuffer allocate = ByteBuffer.allocate(bitmap.getByteCount(

2020-07-21 14:19:26 520

原创 opencv视频输入输出VideoCapture和VideoWriter的使用

opencv依赖了ffmpeg,所以可以轻松对avi视频文件进行操作。打开视频文件或摄像头视频需要使用Opencv中的VideoCapture类,保存视频或摄像头视频到本地磁盘,需要使用Opencv中的VideoWriter类。线上代码:bool isInit= false;VideoCapture *inputVideo=NULL;VideoWriter *outputVideo=NULL;JNIEXPORT void JNICALLJava_org_opencv_samples_tuto

2020-07-17 10:07:36 656 1

原创 opencv 视频对象VideoCapture使用

如何使用VideoCapture控制视频输入和对比?基本上,视频操作所需的所有功能集成在cv :: VideoCapture C ++类中。这本身就建立在FFmpeg开源库上。这是OpenCV的基本依赖,所以你不必担心这一点。视频由连续的图像组成,我们将这些在文献中称为帧。在视频文件的情况下,存在指定两帧之间多长时间的帧速率。而对于摄像机,通常每秒可以限制多少帧可以进行数字化,这个属性不太重要,因为相机会看到当前的世界快照。代码:double getPSNR(const Mat& I1, co

2020-07-16 16:17:32 297

原创 opencv分水岭图像分割算法watershed

如何利用opencv分水岭图像分割算法threshold来分割图像区域?函数说明:void watershed( InputArray image, InputOutputArray markers );image:原图像markers:包含了轮廓点的数据集合void distanceTransform(InputArray src, OutputArray dst, int distanceType, int maskSize)src – 8-bit, 单通道(二值化)输入图片。dst –

2020-07-15 15:11:16 163

原创 opencv检测点在轮廓的相对位置 pointPolygonTest

如何用opencv判断点在轮廓的你面、边上或者外面?函数说明:检测点在轮廓的位置:double pointPolygonTest(InputArray contour, Point2f pt, bool measureDist)用于测试一个点是否在多边形中当measureDist设置为true时,返回实际距离值。若返回值为正,表示点在多边形内部,返回值为负,表示在多边形外部,返回值为0,表示在多边形上。当measureDist设置为false时,返回 -1、0、1三个固定值。若返回值为+1,表示

2020-07-15 11:26:13 547

原创 opencv计算轮廓的矩moments

如何使用opencv 的moments方法计算轮廓的矩?矩即为用一组简单的数据(数据描述量)来描述整个图像,这组数据月简单越有代表性越好。良好的特征不受光线、噪点、几何形变的干扰,图像识别技术的发展中,不断有新的描述图像特征提出,而图像不变矩就是其中一个。从图像中计算出来的矩通常描述了图像不同种类的几何特征如:大小、灰度、方向、形状等,图像矩广泛应用于模式识别、目标分类、目标识别与防伪估计、图像编码与重构等领域。函数说明api:获取矩的方法:cv::moments ( InputArray

2020-07-15 10:28:44 215

原创 opencv 绘制轮廓边框 多边形 圆形 矩形

如何使用opencv 绘制轮廓边框最小包裹 多边形 圆形 矩形?函数说明:Rect boundingRect(InputArray points)points:输入信息,可以为包含点的容器(vector)或是Mat。返回包覆输入信息的最小正矩形。RotatedRect minAreaRect(InputArray points)points:输入信息,可以为包含点的容器(vector)或是Mat。返回包覆输入信息的最小斜矩形。void minEnclosingCircle(InputArra

2020-07-14 10:54:05 425

原创 opencv 凸包查找convexHull

凸包(Convex Hull)是一个计算几何(图形学)中的概念,在一个实数向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包。X的凸包可以用X内所有点(x1, x2….xn)的线性组合来构造。在二维欧几里得空间中,凸包可以想象为一条刚好包着所有点的橡皮圈,用不严谨的话来讲,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边形,它能包含点集中所有的点。常见的有Graham’s Scan法和Jarvis步进法。函数说明:void cv::convexHull ( Inpu

2020-07-13 18:39:43 192

原创 opencv findContours 图像轮廓查找

drawContours函数的作用,主要用于画出图像的轮廓函数说明:findContours(InputOutputArray image, OutputArrayOfArrays contours,OutputArray hierarchy, int mode, int method, Point offset = Point());参数1:单通道图像矩阵,可以是灰度图,但更常用的是二值图像,一般是经过Canny、拉普拉斯等边缘检测算子处理过的二值图像;参数2:contours定义为“vecto

2020-07-13 17:57:05 381

原创 opencv 模板匹配查找

模板匹配是一项在一幅图像中寻找与另一幅模板图像最匹配(相似)部分的技术.模板匹配函数:void matchTemplate(InputArray image, InputArray temp1, OutputArray result, int method);参数说明:image,待搜索的图像,且需为 8 位或 32 位浮点型图像。temp1,搜索模板,需要和原图片有一样的数据类型,且尺寸不能大于源图像。result,比较结果的映射图像,其必须为单通道、32 位浮点型图像,大小为 (image.

2020-07-13 17:11:18 359

原创 android speex AEC 回音消除

android speex AEC 回音消除。有时候喇叭声音会被mic录制进去,就会产生回音数据,这是非常让人头疼的,所以去回音在音视频应用中非常重要。现在主流的回音消除手段有android自带api效果很好,如果其他平台就要使用c库了。有哪些c库具备这个功能webrtc 、 speex等。他们都是开源代码,而且后者还没有专利保护可以随意开鲁。今天介绍的就是speex方法消除回声。那么sp...

2020-03-24 16:32:38 1551

原创 ffmpeg pcm混音

视频会议中经常需要处理的场景有多路音频混音,那么混音有很多种算法有比较主流的有aec、平均权重等方法;如果公司要开发生产级别的音频混合要的算法可能会更加多,可以找算法公司购买。ffmpeg也有混音的操作,用的就是平均权重算法。#define ENABLE_FILTERS 1static const char* filter_descr = "[in0][in1]amix=inputs=2[...

2020-03-20 09:19:13 605

原创 如何使用ndk中addr2line工具查询so库中错误信息行数

如何使用ndk中addr2line工具查询so库中错误信息行数。jni现在在android项目中已经非常常见了,但是错误信息并不想android那样友好。常见的c错误如下:2020-03-12 12:13:49.055 10000-10372/com.tianchen.cloud_disk A/libc: Fatal signal 11 (SIGSEGV), code 1, fault ad...

2020-03-12 13:46:17 359

原创 ffmpeg bitstream filter使用

ffmpeg bitstream filter使用使用ffmpeg bitstream filter为nalu加头用于网络传播。初始化:AVBitStreamFilter *filter = const_cast<AVBitStreamFilter *>(av_bsf_get_by_name("hevc_mp4toannexb"));//aac_adtstoasc h264_mp...

2020-02-27 11:09:12 819

原创 ffmpeg bitstream filter 种类

ffmpeg bitstream filter 种类例如对h264 aac 进行网络传输时候时候要用到bitstream filter添加描述;种类有:2.1 aac_adtstoasc2.2 av1_metadata2.3 chomp2.4 dca_core2.5 dump_extra2.6 eac3_core2.7 extract_extradata2.8 filter_u...

2020-02-26 13:32:29 478

原创 android支持的视频音频硬解码器

android支持的视频音频硬解码器MediaCodec支持的有vp8 、VP9 、H.264、H.265、MPEG4、H.263等;MediaCodec支持的音频格式有3gpp、amr-wb、amr-wb、amr-wb、g711-A、g711-U 、AAC(not packaged in LATM)等;参考:“video/x-vnd.on2.vp8” - VP8 video (i.e. ...

2020-02-26 12:40:38 1211 1

原创 ffmpeg保存avframe中pcm数据到文件

ffmpeg保存avframe中pcm数据到文件。代码如下: data_size = av_get_bytes_per_sample(dec_ctx->sample_fmt); if (data_size < 0) { LOGI("get size error"); return -1; ...

2020-02-26 12:13:40 614

原创 ffmpeg手动添加adts头部信息

ffmpeg手动添加adts头部信息ffmpeg adts 头部信息都要从 extradata 字段里面提取 。aac数据包为什么adts 要加头 ,因为没有头部信息在网络传播过程中难以解码使用。工具方法:typedef struct{ int write_adts; int objecttype; int sample_rate_index; int...

2020-02-26 12:03:02 1419 1

原创 android jni 动态加载so动态库中函数

android jni 动态加载so动态库中函数。思路:1、懒加载so库。void *handle=dlopen("libpboxcipher.so",RTLD_LAZY);//使用懒加载模式2、定义函数指针。typedef int (*Testfilelen)(unsigned char *filepath, int filepathlen,unsigned char *prikey...

2020-02-04 10:55:25 944

原创 opencv描边和浮雕基于Sobel

opencv描边和浮雕基于Sobel代码:/** * @file Sobel_Demo.cpp * @brief Sample code uses Sobel or Scharr OpenCV functions for edge detection * @author OpenCV team */#include "opencv2/imgproc.hpp"#include "o...

2020-01-02 15:11:26 285

原创 opencv 傅里叶变换

opencv 实现傅里叶变换,必须承认工程师、码农还真的不是一回事,做个笔记保存下吧先,傅里叶还真的看不明白!!!代码:int main(){ //C:/Users/liyihang/Desktop/sc/out.png Mat I = imread("C:/Users/liyihang/Desktop/sc/out.png", IMREAD_GRAYSCALE); ...

2019-12-30 14:56:08 175 1

原创 opencv用伽马矫正实现光补偿笔记

opencv用伽马矫正实现光补偿笔记代码:void MyGammaCorrection(Mat& src, Mat& dst, float fGamma){ CV_Assert(src.data); // accept only char type matrices CV_Assert(src.depth() != sizeof(uchar)); // build...

2019-12-27 16:02:07 248 1

FFmpegVideoPlayer.rar

SurfaceViewMediaPlayer-android基于ffmpeg本地视频、在线视频、直播播放器 支持rtmp、rtsp、http等协议;是从IPC摄像头管理提取出来,项目虽然说是一个播放器但是每个每个层面都是分开,例如可以做成p2p点到点媒体的传输和播放;每个api都可以独立当做工具类使用。

2020-09-11

android 插件式无刷新换肤和字体大小切换 兼容android 8.1

android 插件式无刷新换肤和字体大小切换 兼容android 8.1; theme_dome 为dome 案例工程;black_theme 皮肤包工程。

2018-07-19

关于 aac h264 muxer flv 问题

发表于 2017-11-22 最后回复 2017-11-24

Please have your activity extend XWalkActivity for shared mode

发表于 2016-12-08 最后回复 2017-11-22

关于Android 视频直播 采流 推流的问题

发表于 2016-12-08 最后回复 2017-11-22

空空如也

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

TA关注的人 TA的粉丝

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