一个浏览器前端图像处理库

2015-05-16 23:21:57 +08:00
 sneezry
[故事背景]

在实验室研究计算机视觉相关课题,由于感觉Matlab、C和C++处理图片不太方便(其实主要是不熟悉),所以当初不顾导师的反对,毅然决然使用JavaScript搞起。经过将近一年的学习研究,终于提出了自己的算法,文章主要内容也已经写完了,就在等待毕业憧憬美好未来的时光里,电脑坏掉了,然后拿去修,回来发现算法测试代码和文章biu的一下不见了(我没备份,好蠢)。在万念俱灰的心情下,我恍然领悟到,光后悔是木有用的(丫再不抓紧发文章就不用毕业了),于是又一次毅然决然地做出了一个决定,写一个完备的JavaScript图像处理库。

--------------------这是一条傲娇的分割线--------------------

[GridJS]

名字由来是图像在计算机里是个二维矩阵,一个个像素组成了一张大的网格,图像处理也就是在处理这个大网格,所以就叫GridJS了。很多JS的库都叫什么什么JS,比如MathJS什么的,但是它们在代码中的命名空间一般是不带js的,比如AngularJS的命名空间就是angular,MathJS的命名空间就是math。可是grid这个词很特别,在很多JS视觉处理的库中都引用到了一个grid的库,所以没错,和人家重名了……由于这个库的影响还挺广,所以GridJS的命名空间就是gridjs。

然后我在写GridJS的时候参考了PIL(Python Imaging Library)的方法列表,把一些基础的操作添加进去了,同时又根据我自己的需要添加了一些其他的方法。

由于我的研究方向是计算机视觉,所以单纯的图像处理是不够的,根据我自己的需求,我又添加了一些矩阵操作的方法,同时封装了一些相对复杂的方法,比如Gauss滤波器,这些PIL是没有的,而是应该在SciPy中。

--------------------又是一条傲娇的分割线--------------------

我会优先根据我自己研究方向的需求继续逐步添加方法进去,同时也欢迎大家提出建议完善GridJS。


GitHub: https://github.com/gridjs/gridjs (这是让大家Star用的~坏笑~)
API Docs: http://gridjs.org/docs/API.html
License:MIT License(意思就是拿去随便折腾,想干啥干啥,不用在衍生作品中为我留名)

以上。
3634 次点击
所在节点    分享创造
18 条回复
visonnn
2015-05-16 23:32:57 +08:00
文档里左侧列表“gridjs.getImageObjectFromImageData”怎么文字超出边框了
sneezry
2015-05-16 23:33:26 +08:00
@visonnn 因为太长了……
visonnn
2015-05-16 23:35:43 +08:00
@sneezry 真是逼死人啊哥们……Bootstrap 解决这个应该不难吧……= =
sneezry
2015-05-16 23:39:16 +08:00
@visonnn 因为用的朴灵大大的Doxmate直接生成的,等我有时间改改模板~
sneezry
2015-05-17 00:08:05 +08:00
@visonnn 改好了~
yangxiongguo
2015-05-17 00:56:33 +08:00
代码和文章biu的一下不见了是重点
xhacker
2015-05-17 01:09:18 +08:00
MIT 是要留名的吧?
thonatos
2015-05-17 01:18:29 +08:00
有点怀疑性能问题,在浏览器做这个真的合适么?
比如我现在用R处理的高光谱遥感数据,如果真放在浏览器跑,基本是分分钟挂吧?
seki
2015-05-17 01:41:58 +08:00
期待有 Demo

我的论文一开始是同步到 dropbox 上的,后来改成用 LaTeX 来写之后就存在 Bitbucket 上了
Delbert
2015-05-17 07:53:54 +08:00
@seki 我论文LaTeX写了放coding上……
zrp1994
2015-05-17 10:20:19 +08:00
好流弊,已Star
somethin
2015-05-17 11:06:23 +08:00
commit 里全是日期啊.....好歹写详细点修改了什么东西啊...
sneezry
2015-05-17 11:10:30 +08:00
@somethin 因为前期添加的和修改的东西太琐碎了,所以偷懒直接用时间了,基本框架稳定了之后,commit会详细哒~
sneezry
2015-05-17 11:10:40 +08:00
@seki Demo会有的~
sneezry
2015-05-17 15:52:18 +08:00
@xhacker 啊,我重新看了下MIT协议,大概意思好像是原项目的协议声明要放进去,也就是原项目中LICENSE这个文件要放进衍生作品中,代码中的版权好像没啥要求,应该可以随便删吧~
seki
2015-05-18 00:40:39 +08:00
@Delbert 我写的时候 coding 还没开好像。因为 bitbucket 可以私有项目所以就用了 bitbucket
YuJianrong
2015-05-18 11:33:47 +08:00
@thonatos 不用太质疑JS的性能,大都数情况都不慢(尤其是计算都用double型的时候)。实在不放心可以用C++写然后emscripten编译成asm.js格式的JS代码,最新的浏览器上可以做到接近原生代码效率的优化。
zerh925
2015-05-19 09:43:36 +08:00
支持LZ
但是openCV都已经这么成熟了,真的有必要再造轮子吗?
后端使用openCV-python可行吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/191612

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX