- 博客(9)
- 收藏
- 关注
原创 浅谈Android源码与设计模式
七大基本原则单一职责原则、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则、组合/聚合优先原则。
2017-04-14 20:04:49
1059
原创 Opencv 简单的美颜实现方案
实现方法比较简单,主要实现方案就是先调亮度,再结合高斯模糊与双边模糊进行磨皮,最后进行图像增强(非锐化掩蔽 ——Unsharpening Mask)。直接看代码以及注释:void whiteFace(Mat& matSelfPhoto,int alpha, int beta){ for (int y = 0; y < matSelfPhoto.rows; y++) { f
2017-04-05 22:08:17
18039
3
原创 浅谈Android响应式编程与Rxjava
一、响应式编程响应式编程一种面向数据流和变化传播的编程范式。这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。例如,在命令式编程环境中,a:=b+c表示将表达式的结果赋给a,而之后改变b或c的值不会影响a。但在响应式编程中,a的值会随着b或c的更新而更新。电子表格程序就是响应式编程的一个例子。单元格可以包含字面值或类似"
2017-03-23 22:22:29
502
原创 Android多线程API
一、Looper、Handler、MessageQueue、MessageLooper:用于封装消息循环,,并且有一个消息队列(MessageQueue)。一个线程可以有一个Looper,主线程默认有一个Looper。Handler:辅助类,封装了消息投递、消息处理等接口,能够将message插入到Looper的消息队列中。MessageQueue:使用Intent、Message、R
2017-03-22 20:55:44
481
原创 Opencv 图像边缘拉伸
需求如下图,需要将绿色点围成的区域(记做inside)到红色点围成的区域(记做outside)拉伸到蓝色点(图片中有两圈蓝点,本文以内圈蓝点为准)围成的区域(记做affine),并且绿色区域内部的图像保持不变,仅拉伸边缘区域,原图中红色区域以外的图像信息忽略。原理:将红点与绿点间的区域切分为多个三角形,记住srcTriangles, 将蓝点与绿点间的区域也切分为多个三角形,记住dstTri
2017-03-14 19:37:40
3766
原创 Opencv 图像融合(seamlessClone)
Opencv图像融合效果:相关Opencv 图像融合API为seamlessClone:1,2,3三个参数对应源文件、目标文件与mask文件,注意mask文件为src的ROI区域。第四个参数为src要在dst上摆放的位置。第五个参数为对应输出文件。第六个参数为采用的融合方式,默认为NORMAL_CLONE。三个融合方式为:NORMAL_CLONE
2017-03-07 19:52:01
11864
1
原创 Opencv 去高光或镜面反射(illuminationChange)
如下图片中间存在高光,需要消除高光:涉及的Opencv API为illuminationChange:处理后的效果如下:(图片顺序对应src, mask, dst三个参数)最后处理完的感觉类似拿一块玻璃挡住mask所在的区域。alpha,beta两个参数共同决定消除高光后图像的模糊程度(范围0~2,0比较清晰,2比较模糊)。
2017-03-07 19:04:37
29099
13
原创 Opencv 颜色空间处理(Color space processing)
颜色空间简介:计算机领域对色彩的一种量化说明,主要有RGB,CMY,HSV,HSI等。实际的图像处理过程中常常涉及二值化、色彩饱和度等需求,需要记性颜色空间的转换。用到Opencv API:cvtColor(InputArray src, OutputArray dst, int code, int dcn=0)第一个参数为输入图像,第二个参数为输出
2017-03-06 21:18:06
2543
原创 3D坐标系统
局部坐标到的屏幕坐标变换原理:在U3D中可以使用Transform类中的TransformPoint将物体的局部坐标变换到屏幕坐标,使用InverseTransformPoint将屏幕坐标变换为物体的局部坐标。
2017-03-06 21:08:19
311
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人