下面我们将介绍Mexopencv的使用。
首先介绍几个常用的帮助链接:
MATLAB File Help: cv :这里列出了cv里的全部函数
OpenCV 2.3.2 documentation :这里可以搜索到opencv的函数
mexopencv Github主页
mexopencv主页
mex interface for opencv library
more
添加Mexopencv的路径
方法一:在matlab中找到Set Path选项,添加mexopencv路径;
方法二:addpath('/path to mexopencv');如我的路径为:
addpath('D:/Program Files/mexopencv
继续阅读 »
本节实现的是使用内建摄像头捕获视频,并显示视频的每一帧以实现视频的播放。
创建摄像头对象
逐帧显示实现视频播放
实现过程
引用
不再赘述,代码如下。
python
import cv2
import numpy
import matplotlib.pyplot as plot
创建摄像头对象
使用opencv自带的VideoCapture()函数定义摄像头对象,其参数0表示第一个摄像头,一般就是笔记本的内建摄像头。
python
cap = cv2.VideoCapture(0)
逐帧显示实现视频播放
在while循环中,利用摄像头对象的read()函数读取视频的某帧,并显示,然后等待1个单位时间,如果期间
继续阅读 »
本节实现的是使用OpenCV里自带的函数,对图像进行简单的几何变换。
放大
缩小
平移
旋转
实现过程
读取原图并显示
不再赘述。
``` python
import cv2
import numpy as np
read the original
img = cv2.imread('../test2.jpg')
cv2.imshow('original', img)
```
放大
利用OpenCV自带的resize()函数实现放大与缩小。其声明为:
python
cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) → dst
其中各个参数的意义如
继续阅读 »
首先做了笔试题, 我觉得笔试题非常好, 才对公司有兴趣的.
笔试题忘记了
二面
全程英文,问了很多问题
算法,判断一个数是否power of two的方法
这个有多种办法,不断除以2是最笨的方法;还可以用二进制,直接&1判断最后一位是不是1;还有利用 C 语言库函数等等;
继续阅读 »
python中的多线程其实并不是真正的多线程,如果想充分利用多核CPU的资源,在python中大部分情况需要适用多进程。Python提供了非常好用的多进程包multiprocessing,只需要定义一个函数,python会完成其他所有事情。借助这个包,可以轻松完成从单进程到并发执行的转换。multiprocessing支持子进程、通信和共享数据、执行不同的形式的同步,提供了Process、Queue、Pipe、Lock等组件。
继续阅读 »
本文的前身是一篇笔记,比较零碎,发布出来是为了让后续的文章可以有一个基本的参考,本文会持续更新。
NDK 的高性能最常见的场景:多媒体,游戏。此外,利用 NDK 还能练习 C/C++,一举两得。
基本概念
shared library, .so
static library, .a
JNI: Java Native Interface
Application Binary Interface, ABI:我们将符号修饰标准、变量内存布局、函数调用方式等跟可执行代码二进制兼容性相关的内容称为程序的 ABI(摘自《程序员的自我修养》);
Application Programming Interface, API:API 是源码层面
继续阅读 »
本节实现的是使用内建摄像头捕获视频,并保存视频。
创建摄像头对象
逐帧显示实现视频播放
保存摄像头的每一帧图像
实现过程
引用
不再赘述,代码如下。
python
import cv2
import numpy
创建摄像头对象
使用opencv自带的VideoCapture()函数定义摄像头对象,其参数0表示第一个摄像头,一般就是笔记本的内建摄像头。
python
cap = cv2.VideoCapture(0)
定义写入视频格式和写入对象
利用cv2.cv.FOURCC(*'XVID')定义视频格式,然后创建视频写入对象。
``` python
Define the codec and create
继续阅读 »
我们下载了Github上的代码,并仔细阅读了其中的细节。最后我们对源代码做了一些修正(新代码已上传到Github),主要包括:
修复了代码运行中出现的一些bug
添加了一些函数,使代码更简洁
训练阶段我们采用了分批处理,优化了内存
参考论文《Extended Supervised Descent Method for Robust Face Alignment》,优化了源程序
在测试阶段,我们使用了逆的缩放和平移变换将得到的aligned_shape
转换为原始图片的特征点true_shape
添加了详细的注释,使之更容易明白。
more
Dependency:
Vlfeat library: http://www.vlfeat
继续阅读 »
8. series/parallel/parallelLimit
async.eachOfSeries(arr, iterator, callback)是对arr中的每一项,调用iterator函数,最终调用callback。也就是说,所有的异步任务都是同一种类型,只是传入的参数不同。例如对于一个目录下的所有文件,统计每个文件的size。
继续阅读 »
tbox的协程实现,是stackfull模式的,需要指定独立堆栈和协程函数,目前暂时还不能像golang那样实现堆栈的动态增长,之后会对其进行支持。
目前提供下面一些功能特性:
1. 提供yield切换调度支持,这个是必须的哈
2. 提供suspend(挂起)/resume(恢复)协程接口,不同于yield的是,被suspend后,如果不显示调用resume恢复它,是永远不会被调度到的
3. 提供sleep等待接口支持
4. 提供io调度支持,支持socket等io等待(内部使用epoll, poll, kqueue, select, poll等接口调度)
5. 原生支持stream,socket,http等模块的协程支持,可
继续阅读 »