代码改变世界

JsCV Core v0.2发布 & Javascript图像处理系列目录

2012-12-28 14:00  Justany_WhiteSnow  阅读(...)  评论(...编辑  收藏

JsCV Core是一个开源的Javascript图像处理核心库,其在MIT许可下发布。

 

简介

本质上JsCV是旨在:用Javascript做一些Computer Vision(计算机视觉)的事情的。

众所周知,以Javascript偏弱的运算能力,其在浮点数计算上的误差,以及Array数组的性能问题,和Javascript的单线程阻塞问题,这在IE6的年代几乎是不可能的任务。

而如今,第五版Javascript和HTML5技术提供了一些可能性,TypedArray、ArrayBuffer、Canvas、Worker、WebGL等技术的出现,这使得Javascript渐渐可以脱离UI逻辑控制层面,完成一些图像处理、计算机视觉,甚至是3D技术,以前前端想也不会想的东东。

比如:

Core模块是JsCV的图像处理核心,包含了基础类型Mat、Rect和一些常见的图像处理函数。

当然本质上目前的Core并没有太多实际用途,更多只是作为学习和研究用途。

不过,如果你想了解HTML5和Javascript 5,这可能是一个还可以的例子。

     如果你想了解Javascript图像处理的原理,这也是一个简单的例子。

     如果你深陷前端繁琐的逻辑与布局头昏脑胀,这也是一个很好的机会来了解Javascript的另一面魅力。

     ……

新年快到了,提前祝大家新年快乐,工作顺利,合家美满吧!

 

目录结构

src - 源文件

dst - 处理后库文件

example - 简单例子

logMaker - 源代码预处理程序

 

函数简介

Mat — 基础类型Mat的构造函数。

Rect — 基础类型Rect的构造函数。

imread — 通过图片读取矩阵。

imwrite — 通过矩阵输出图片。

convertScaleAbs — 将矩阵取绝对值并转成无符号8位类型。

addWeighted — 按比例叠加矩阵。

cvtColor — 颜色空间转换函数。

brightnessContrast — 亮度及对比度调节函数。

copyMakeBorder — 虚拟边缘创建函数。

blur — 均值平滑(分离滤波器版本)

blurOld — 均值平滑(原版本)

GaussianBlur — 高斯平滑(分离滤波器版本)。

GaussianBlurOld — 高斯平滑(原版本)。

medianBlur — 中值平滑。

bilateralFilter — 双边平滑(未完成,暂未开放)。

filter2D — 2D滤波器。可自定义内核。

separableLinearFilter — 可分离滤波器。

threshold — 阈值函数。

Sobel — Sobel算子。

Laplacian — Laplacian算子。

Scharr — Scharr算子。

remap — 重映射函数。

warpAffine — 仿射函数(存在的问题已解决)。

pyrDown — 高斯金字塔下一级。

pyrUp — 高斯金字塔上一级(和OpenCV一样,此过程非下一级的逆过程)。

dilate — 膨胀(换成分离滤波器版本,不过3x3核几乎没有变化,只有再更大的核中才有明显加速)。

erode — 腐蚀(换成分离滤波器版本,不过3x3核几乎没有变化,只有再更大的核中才有明显加速

 

原理解释系列文章

Javascript图像处理

Javascript图像处理——矩阵基本方法

Javascript图像处理——虚拟边缘

Javascript图像处理——平滑处理

Javascript图像处理——亮度对比度

Javascript图像处理——阈值

Javascript图像处理——图像形态学

Javascript图像处理——边缘梯度计算

Javascript图像处理——图像金字塔

Javascript图像处理——仿射变换

(暂时完结)

 

文档

作者太懒了……目前还没写……

 

项目地址

https://github.com/miniflycn/JsCV

 

PS

v0.2做了一些优化工作,着力于算法优化上,如果大家发现一些bug和优化方法请告诉我,O(∩_∩)O谢谢。