autojs-opencv工具箱

JavaScript07

autojs-opencv工具箱,第1张

牙叔教程 简单易懂

本项目集合了一些opencv的常用操作,

脚本框架已经搭好, 有能力的话可以添加更多的操作,

比如霍夫圆, 膨胀腐蚀等形态学操作

点击按钮跳转至对应的功能界面

遍历按钮添加点击事件, 因为所有按钮行为都是类似的

启动对应脚本, 带上工具名字, 图片路径, 以及当前工作路径

为什么要带上当前工作路径?

因为常用的工具函数都在根目录放着, 要在新脚本中导入根目录的工具函数, 需要require工具函数的绝对路径

一开始想直接把 URI 传给新脚本, 但是报错了, 说用户不匹配之类的,

然后就换了个办法, 把图片保存到手机上, 传递文件路径

保存bitmap

URI 转 图片

工具脚本结构, 以边缘检测为例

模块里面是一些常用的函数

由于滑块功能类似, 因此可以设计一个通用的函数, 批量设置监听

测试的时候, apertureSize太大就会报错, 偶数也报错, 因此需要特殊处理

注意同时修改滑块显示的数值

因为处理图片, 需要一定的时间, 因此使用防抖操作,

在一定时间内, 只处理用户最后一次的操作

设置新图片, 回收旧图片, 避免内存泄漏

以上就是 边缘检测 工具脚本的大概流程, 其他opencv工具脚本流程与它类似

不同软件测出来的阈值不一样,

比如你用PS和autojs测出来的二值化阈值就不一样,

因此, 浏览初步效果可以在ps上看,

要测出合适的数值, 就要在手机上操作

鉴于有的人不会调试脚本, 我打算打包一个app.

打包后安装, 提示包解析错误

然后我就准备用autojs8.8.20打包,

先运行一次脚本, 脚本报错了

这个 getWindowInsetsController 方法是安卓11新增的全屏api,

autojs8.8.20出来的时候, 还没有支持安卓11,

因此我把这个全屏函数 try catch

再次运行脚本, 还是报错

我在autojs9.0.14用的好好的, 在autojs8.8.20就报错了, 也是有点委屈

报错说找不到模块文件, 那么我们去对应的目录下面看看都有什么文件

打印出来的内容

明明有这个config.js文件的

我知道哪里的问题了

调试的时候用了上一次的 args没注释

可气

注释后运行就正常了

再打包试试, 还是提示解析错误

然后就开始猜测是哪里错了

打包的时候有一些东西要填写, 我把 中文和破折号 等都给删掉,

再次打包, 居然可以了, 看来是中文或者破折号的问题

手机: Mi 11 Pro

Android版本: 12

Autojs版本: 9.1.14

名人名言

思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问 --- 牙叔教程

声明

部分内容来自网络 本教程仅用于学习, 禁止用于其他用途

目前来看,JS框架以及一些开发包和库类有如下几个,Dojo 、Scriptaculous 、Prototype 、yui-ext 、Jquery 、Mochikit、mootools 、moo.fx

Dojo (JS library and UI component ):

Dojo是目前最为强大的j s框架,它在自己的Wiki上给自己下了一个定义,dojo是一个用JavaScript编写的开源的DHTML工具箱。dojo很想做一个“大一统”的 工具箱,不仅仅是浏览器层面的,野心还是很大的。Dojo包括ajax, browser, event, widget等跨浏览器API,包括了JS本身的语言扩展,以及各个方面的工具类库,和比较完善的UI组件库,也被广泛 应用在很多项目中,他的UI组件的特点是通过给html标签增加tag的方式进行扩展,而不是通过写JS来生成,dojo的API模仿Java类库的组织 方式。 用dojo写Web OS可谓非常方便。dojo现在已经4.0了,dojo强大的地方在于界面和特效的封装,可以让开发者快速构建一些兼容标准的界面。

优点:库相当完善,发展时间也比较长,功能强大,据说利用dojo的io.bind()可以实现comet,看见其功能强大非一般,得到IBM和SUN的支持

缺点:文件体积比较大,200多KB,初次下载相当慢,此外,dojo的类库使用显得不是那么易用,j s语法增强方面不如prototype。

Prototype (JS OO library):

是一个非常优雅的JS库,定义了JS的面向对象扩展,DOM操作API,事件等等,以prototype为核心,形成了一个外围的各种各样 的JS扩展库,是相当有前途的JS底层框架,值得推荐,感觉也是现实中应用最广的库类(RoR集成的AJAX JS库),之上还有 Scriptaculous 实现一些JS组件功能和效果。

优点:基本底层,易学易用,甚至是其他一些js特效开发包的底层,体积算是最小的了。

缺点:如果说缺点,可能就是功能是他的弱项

Scriptaculous (JS UI component based on prototype):

Scriptaculous是基于prototype.js框架的JS效果。包含了6个js文件,不同的文件对应不同的js效果,所以说,如果底层用 prototype的话,做js效果用Scriptaculous那是再合适不过的了,连大名鼎鼎的digg都在用他,可见不一般

优点:基于prototype是最大的优点,由于使用prototype的广泛性,无疑对用户书锦上添花,并且在《ajax in action》中就拿Scriptaculous来讲述js效果

缺点:刚刚兴起,需要时间的磨练

yui-ext (JS UI component):

基于Yahoo UI的扩展包yui-ext是具有CS风格的Web用户界面组件 能实现复杂的Layout布局,界面效果可以和backbase媲美,而且使用纯javascript代码开发。真正的可编辑的表格Edit Grid,支持XML和Json数据类型,直接可以迁入grid。许多组件实现了对数据源的支持,例如动态的布局,可编辑的表格控件,动态加载的Tree 控件、动态拖拽效果等等。1.0 beta版开始同Jquery合作,推出基于jQuery的Ext 1.0,提供了更多有趣的功能。

优点:结构化,类似于java的结构,清晰明了,底层用到了Jquery的一些函数,使整合使用有了选择,最重要的一点是界面太让让人震撼了。

缺点:太过复杂,整个界面的构造过于复杂。

Jquery :

jQuery是一款同prototype一样优秀js开发库类,特别是对css和XPath的支持,使我们写js变得更加方便!如果你不是个js高手又想写出优 秀的js效果,jQuery可以帮你达到目的!并且简介的语法和高的效率一直是jQuery追求的目标,

优点:注重简介和高效,js效果有yui-ext的选择,因为yui-ext 重用了很多jQuery的函数

缺点:据说太嫩,历史不悠久。

Mochikit :

MochiKit自称为一个轻量级的js框架。MochiKit 主要受到 Python 和 Python 标准库提供的很多便利之处的启发,另外还缓解了浏览器版本之间的不一致性。其中的 MochiKit.DOM 尤其方便,能够以比原始 JavaScript 更友好的方式处理 DOM 对象。MochiKit.DOM 大部分都是针对 XHTML 文档定制的,如果与 MochiKit 和 Ajax 结合在一起,使用 XHTML 包装的微格式尤其方便。Mochikit可以直接对字符串或者数字格式化输出,比较实用和方便。它还有自己的 js 代码解释器

优点:MochiKit.DOM这部分很实用,简介也是很突出的

缺点:轻量级的缺点

mootools :

MooTools是一个简洁,模块化,面向对象的JavaScript框架。它能够帮助你更快,更简单地编写可扩展和兼容性强的JavaScript代码。Mootools跟prototypejs相类似,语法几乎一样。但它提供的功能要比prototypejs多,而且更强大。比如增加了动画特效、拖放操作等等。

优点:可以定制自己所需要的功能,可以说是prototypejs的增强版。

缺点:不大不小,具体应用具体分析

moo.fx :

moo.fx是一个超级轻量级的javascript特效库(7k),能够与prototype.js或mootools框架一起使用。它非常快、易于使用、跨浏览器、符合标准,提供控制和修改任何HTML元素的CSS属性,包括颜色。它内置检查器能够防止用户通过多次或疯狂点击来破坏效果。moo.fx整体采用模块化设计,所以可以在它的基础上开发你需要的任何特效。

优点:小块头有大能耐

缺点:这么小了,已经不错了

1、首先js并没有销声匿迹。

2、由于市场和企业公司的需要、将JS进行了对象封装作为了第三方插件,也就是当今比较流行的jQuery.

3、js是原生源码是不会销声匿迹的,由于原生源码写起来费劲,同时为了跟进一步的提高效率和扩展,人们将JS封装成了工具箱,你所用到的所有第三方插件原生源码都是由js而来。

4、同时也是叫js高级编程、对象封装例如:jquery。原生源码就是javascript