自定义博客皮肤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

IT民工,爱好:Android、C/C++、HTML5、Flutter、Framework、PHP、Unity

  • 博客(285)
  • 资源 (2)
  • 收藏
  • 关注

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

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

2020-08-12 14:20:46 1213

原创 SVM 简介和使用

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

2020-08-12 10:32:02 1042

原创 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 1087

原创 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 551

原创 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 369

原创 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 648

原创 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 1285

原创 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 1677 1

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

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

2020-07-23 09:39:21 977

原创 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 1358

原创 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 2085 1

原创 opencv 视频对象VideoCapture使用

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

2020-07-16 16:17:32 1105

原创 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 462

原创 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 1180

原创 opencv计算轮廓的矩moments

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

2020-07-15 10:28:44 1075

原创 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 1281

原创 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 507

原创 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 921

原创 opencv 模板匹配查找

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

2020-07-13 17:11:18 770

原创 android speex AEC 回音消除

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

2020-03-24 16:32:38 3090

原创 ffmpeg pcm混音

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

2020-03-20 09:19:13 1838

原创 如何使用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 1435

原创 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 2140

原创 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 865

原创 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 3349 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 1383

原创 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 2659 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 1564

原创 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 614

原创 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 341 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 523 1

原创 c语言多线程和信号量使用

线程使用:int com_index=1;pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;int thread_run(void * ins){ if (pthread_mutex_lock(&mutex)!=0){ LOGI("***lock error"); return -1; ...

2019-12-06 11:11:03 1477

原创 ffmpeg使用Filter处理aac音频

前言文章使用Filter处理封装内容音频将其转码。输出文件使用命令播放:ffplay -f s16le -ar 48000 -ac 1 bs.pcm代码#include <unistd.h>#include <libavcodec/avcodec.h>#include <libavformat/avformat.h>#include <l...

2019-12-05 10:01:27 778

原创 android 生产者 消费者 模式

package com.chenxing.searchjob.sdk.view;import android.util.Log;public class TestClass { static void msg(String msg){ Log.i("IMListView", "msg: "+msg); } public void main(){...

2019-03-23 16:35:28 655

原创 android 解释器模式

package com.chenxing.searchjob.sdk.view;import android.util.Log;import java.util.HashMap;import java.util.Map;public class TestClass { private String TAG=IMListView.class.getSimpleName();...

2019-03-23 11:09:24 241

原创 android 访问者模式

private void t() { juzi juzi = new juzi(); langtou langtou = new langtou(); gongju gongju = new gongju(); gongju.add(juzi); gongju.add(langtou); on...

2019-03-23 10:21:04 151

原创 android 存档模式

private void t() { game game = new game(); game.level=20; gameBean gameBean = game.create(); player player = new player(); player.setBean(gameBean); ...

2019-03-23 09:52:10 310

原创 android 迭代器模式Iterator

private void t() { myList myList = new myList(); myList.add("one"); myList.add("two"); myList.add("three"); myList.add("four"); Iterator iterator = ...

2019-03-23 09:30:01 1924

原创 android 链式模式 责任链

private void t() { bj bj = new bj(); cs cs = new cs(); cz cz = new cz(); bj.next=cs; cs.next=cz; bj.handleMessage("two"); } abstract clas...

2019-03-23 09:08:27 295

原创 android 状态模式

private void t() { person person=new person(); person.setState(new yes()); person.getState().fire(); person.setState(new no()); person.getState().fire(); ...

2019-03-22 17:46:04 109

exoplayer 编译出来的ffmpeg扩展库aar

exoplayer 编译出来的ffmpeg扩展库aar,FFmpeg 模块提供 ,它使用 FFmpeg 进行解码 并且可以呈现以各种格式编码的音频。FfmpegAudioRenderer。 使用模块将aar加入项目libs。 按照上述说明进行检查后,构建并依赖 模块,下一步就是告诉ExoPlayer使用。如何 执行此操作取决于您使用的播放器 API:FfmpegAudioRenderer 如果要将 传递给 ,则 可以通过设置参数来启用使用模块 的构造函数。这将用于 播放(如果不支持输入格式)。通过以优先于 .DefaultRenderersFactoryExoPlayer.BuilderextensionRendererModeDefaultRenderersFactoryEXTENSION_RENDERER_MODE_ONFfmpegAudioRendererMediaCodecAudioRendererEXTENSION_RENDERER_MODE_PREFERFfmpegAudioRendererMediaCodecAudioRenderer 如果已子类化,则在 中的输出列表中

2023-07-24

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

空空如也

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

TA关注的人

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