V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
sneezry
V2EX  ›  分享创造

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

  •  
  •   sneezry ·
    Sneezry · 2015-05-16 23:21:57 +08:00 · 3498 次点击
    这是一个创建于 3269 天前的主题,其中的信息可能已经有所发展或是发生改变。
    [故事背景]

    在实验室研究计算机视觉相关课题,由于感觉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(意思就是拿去随便折腾,想干啥干啥,不用在衍生作品中为我留名)

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

    我的论文一开始是同步到 dropbox 上的,后来改成用 LaTeX 来写之后就存在 Bitbucket 上了
    Delbert
        10
    Delbert  
       2015-05-17 07:53:54 +08:00 via Android
    @seki 我论文LaTeX写了放coding上……
    zrp1994
        11
    zrp1994  
       2015-05-17 10:20:19 +08:00
    好流弊,已Star
    somethin
        12
    somethin  
       2015-05-17 11:06:23 +08:00
    commit 里全是日期啊.....好歹写详细点修改了什么东西啊...
    sneezry
        13
    sneezry  
    OP
       2015-05-17 11:10:30 +08:00
    @somethin 因为前期添加的和修改的东西太琐碎了,所以偷懒直接用时间了,基本框架稳定了之后,commit会详细哒~
    sneezry
        14
    sneezry  
    OP
       2015-05-17 11:10:40 +08:00
    @seki Demo会有的~
    sneezry
        15
    sneezry  
    OP
       2015-05-17 15:52:18 +08:00
    @xhacker 啊,我重新看了下MIT协议,大概意思好像是原项目的协议声明要放进去,也就是原项目中LICENSE这个文件要放进衍生作品中,代码中的版权好像没啥要求,应该可以随便删吧~
    seki
        16
    seki  
       2015-05-18 00:40:39 +08:00
    @Delbert 我写的时候 coding 还没开好像。因为 bitbucket 可以私有项目所以就用了 bitbucket
    YuJianrong
        17
    YuJianrong  
       2015-05-18 11:33:47 +08:00
    @thonatos 不用太质疑JS的性能,大都数情况都不慢(尤其是计算都用double型的时候)。实在不放心可以用C++写然后emscripten编译成asm.js格式的JS代码,最新的浏览器上可以做到接近原生代码效率的优化。
    zerh925
        18
    zerh925  
       2015-05-19 09:43:36 +08:00
    支持LZ
    但是openCV都已经这么成熟了,真的有必要再造轮子吗?
    后端使用openCV-python可行吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3160 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:46 · PVG 20:46 · LAX 05:46 · JFK 08:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.