图形图像处理 - 实现图片的美容效果

我们在用美颜相机或者直播时,相信都离不开一个效果那就是 美容 。这次我们就来分析一种常用滤波(双边滤波),刚好就可以实现一些美容效果。**双边滤波(Bilateral Filter)**是非线性滤波中的一种。这是一种结合图像的空间邻近度与像素值相似度的处理办法。在滤波时,该滤波方法同时考虑空间临近...

2019-01-15 16:40:26

阅读数 52

评论数 0

来到大城市的 2018

年初,自己终于鼓起勇气来了深圳,这一年经历过太多的不适应和焦虑,还好都熬过来了。最值得开心的是,找到了那个真心相爱的人,因此打算用文字记录下来。文章很多是写给自己的,如今多年过去了,我依旧会翻越以前的文章。只是后来发现能够在一起探讨技术,能够给大家一些指引,自己也能反思总结,我觉得乐此不疲。 工作...

2019-01-05 11:09:44

阅读数 98

评论数 0

图形图像处理 - 我们所不知道的 Bitmap

Bitmap 是怎么开辟内存的?内存是怎么复用和销毁的?本地资源图片应该怎么去做适配? 打开我们自己的 APP 发现占用内存较大的一般都是本地资源图片,我们该如何去优化这些内存? 大家以后如果有涉及直播这一块的业务,直播间会有各种活动和各种复杂动画,线上 buggly 肯定会有大量的 OOM ,...

2019-01-05 11:06:42

阅读数 97

评论数 1

图形图像处理 - Android 滤镜效果

年初来深圳正式开始从事音视频开发,为啥我想从事音视频开发呢?有一个简单的理由是我想建立起自己的技术壁垒,别人不能做的你能做,别人解决不了的你能解决。我们工作多年甚至于做了几十个项目,如果我们不能从项目中去学习新的东西,那技术就只能停滞不前了。当然有哥们建议我说,你学的东西太多了但是不精,因此同样我...

2018-12-10 10:25:20

阅读数 39

评论数 1

Android 性能优化实战 - 界面卡顿

今天是个奇怪的日子,有三位同学找我,都是关于界面卡顿的问题,问我能不能帮忙解决下。由于性能优化涉及的知识点比较多,我一时半会也无法彻底回答。恰好之前在做需求时也遇到了一个卡顿的问题,因此今晚写下这篇卡顿优化的文章,希望对大家有所帮助。先来看看卡顿的现象: 1. 查找卡顿原因 从上面的现象来看,应...

2018-11-21 17:13:21

阅读数 96

评论数 0

数据结构算法 - LeetCode 刷题

数据结构和算法的课程讲解,目前已告一段落,也算是完成了自己的一个心愿。因为去年听某同学抱怨过,说自己去爱奇艺面试,其他问题都答得不错,面试官问了一个哈夫曼算法的题没答出来,后来面试官很明确的说,我们还是想找一个会些算法基础的。 如果之前有学过数据结构和算法,建议大家不定时的去刷刷算法题,因为从面试...

2018-11-21 17:12:26

阅读数 70

评论数 0

数据结构算法 - ConcurrentHashMap 源码解析

五个线程同时往 HashMap 中 put 数据会发生什么? ConcurrentHashMap 是怎么保证线程安全的? 在分析 HashMap 源码时还遗留这两个问题,这次我们站在 Java 多线程内存模型和 synchronized 的实现原理,这两个角度来彻底分析一下。至于 JDK 1....

2018-11-21 17:11:55

阅读数 32

评论数 0

数据结构算法 - 红黑树

红黑树是一棵自平衡的二叉搜索树,因此在学习红黑树之前,我们需要回顾一下之前所学的知识二叉搜索树和平衡二叉树。 1.二叉搜索树 二叉搜索树又叫二叉查找树或者二叉排序树,它首先是一个二叉树,而且必须满足下面的条件: 1)若左子树不空,则左子树上所有结点的值均小于它的根节点的值; 2)若右子树不空,则右...

2018-11-21 17:10:41

阅读数 75

评论数 0

数据结构算法 - 优先级队列和堆排序

队列是一种特征为FIFO的数据结构,每次都是从队首弹出。优先队列与其不同的是,它不遵循先进先出的规则,而是根据队列中元素的优先权,优先权最大的先被取出。今天我们来读读源码层的优先级队列,到底是怎么实现的,在这之前我们不妨思考一下。如果要我们自己去实现,我们怎么去实现一个优先级队列? 存储结构分为数...

2018-11-21 17:09:06

阅读数 34

评论数 0

数据结构算法 - HashMap 源码深度解析

equals 和 == 的区别,hashCode 与它们之间的联系? HashMap 的长度为什么是 2 的幂次? 五个线程同时往 HashMap 中 put 数据会发生什么? ConcurrentHashMap 是怎么保证线程安全的? 上面是一些常见的面试题,本文旨在分析 HashMap 的...

2018-11-21 17:08:22

阅读数 53

评论数 0

数据结构算法 - 栈和队列

栈和队列在数据结构和算法学习中,是比较容易理解的。但有时候感觉自己掌握了栈和队列,可是在写的时候遇到不同的情况,就不会处理了,因此自己还是想再总结回顾一下。 栈: 是一端受限,一端允许进行操作的线性表。即:先放的后取,后放的先取。就是我们通常说的“先进后出”(FILO)。存储结构最常见的有两种:一...

2018-11-21 17:07:10

阅读数 48

评论数 0

数据结构算法 - 冒泡、选择和插入排序

排序算法我们一般可以从以下几个方面入手: 手写排序算法; 时间复杂度,空间复杂度,排序的稳定性; 能够了解各大排序算法的优劣,能根据具体的场景选择合适的算法; 能够优化排序算法。 一.冒泡排序 冒泡排序的思想:重复地遍历要排序的列表,比较每一对相邻项,如果它们的顺序不对,就交换它们。重复遍历列...

2018-11-21 16:42:28

阅读数 31

评论数 0

数据结构算法 - 数组与链表

是时候来撸一波数据结构和算法了,学完 NDK 自己打算又重新回到 Android 和 Java , 再去抓一些有细节和深度的东西。大学选的是教育专业后来自学的编程,学编程的第一感觉就是可以找一份工作,薪资方面什么的都还好,因为农村孩子家里穷所以就学了。刚开始学习不像现在,谈不上有多喜欢,也没学过什...

2018-11-21 16:41:30

阅读数 47

评论数 0

Android智能识别 - 银行卡数字识别

接着上一篇文章 《Android智能识别 - 银行卡区域裁剪》 来说,上一次我们已经截取到了银行卡的数字区域,那么这次我们基于上次截取到的卡号区域,来进行数字识别。 有了上面这一块区域之后,我们首先要做的肯定需要转为灰度然后进行二值化。 // 转为灰度 Mat gray...

2018-08-03 12:01:17

阅读数 319

评论数 0

Android智能识别 - 银行卡区域裁剪

在真正开始看这篇文章之前,希望我们能先去了解一下这篇文章《NDK开发前奏 - 实现支付宝人脸识别功能》,此篇文章阅读起来可能会有些许难度,因此我们只要能看懂 c/c++ 语法,能跟上我分析问题的思路就可以了。后面我们会讲一些算法,会去介绍 opencv 的常用函数。当然我们学习 Ndk 主要还是为...

2018-08-03 12:00:01

阅读数 183

评论数 0

Android进阶之旅 - 源码阅读的经验总结

在长沙待的那些年,身边所看到的大概可分为两类人,一类是不断反复的做业务逻辑,只求功能能够写出来,每天重复上下班,不想过多的去折腾;还有一类是不断的反思总结和学习,不只停留在做的层次上,是真正的喜欢做这行,且觉得非常有意思。没有什么好与坏,只是大家的追求不同而已。但如果我们想要去大一点的公司,或者找...

2018-08-03 11:59:04

阅读数 135

评论数 0

C++进阶 - STL算法设计理念分析

C++ 中 STL 的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模版函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。 学好 STL 其实主要在于其设计理念和算法实现,再清晰一...

2018-08-03 11:57:34

阅读数 75

评论数 0

C++基础 - 构造函数、析构函数和拷贝构造函数

一.构造函数 C++ 中类的构造函数与 java 很类似,其实对于面向对象编程来说,大家伙都是一个思想,可能语法上有所不同而已。 class Student { public: // 构造函数 Student(){// 空参数构造函数 cout &a...

2018-06-22 12:02:17

阅读数 107

评论数 1

C进阶 - 内存四驱模型

一.内存四驱模型 不知我们是否有读过 《深入理解 java 虚拟机》这本书,强烈推荐读一下。在 java 中我们将运行时数据,分为五个区域分别是:程序计数器,java 虚拟机栈,本地方法栈,java 堆,方法区。 在 c/c++ 中我们将运行时数据,分为四个区域分别是:栈区,堆区,数据区,代码...

2018-06-22 12:01:43

阅读数 80

评论数 0

JNI 基础 - Android 共享内存的序列化过程

1. 进程间的通信方式有哪些 2. binder 和 socket 通信的区别有哪些 3. Android 为什么在大部分场景下用 Binder 进行进程间通信 4. Serializable 和 Parcelable 之间的区别 5. Parcelable 序列化和反序列化的具体过程 ...

2018-06-22 12:01:08

阅读数 200

评论数 0

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