生活工程体验信仰哲学精神
投稿投诉
精神世界
探索历史
哲学文学
艺术价值
信仰创造
境界审美
体验技术
技能工具
工程信息
医学生产
生活运用
操作能力

autojsopencv工具箱

12月12日 终不悔投稿
  牙叔教程简单易懂功能
  rgb通道分离
  hsv通道分离
  灰度化
  边缘检测
  二值化
  霍夫直线
  简介
  本项目集合了一些opencv的常用操作,rgb通道分离hsv通道分离灰度化边缘检测。二值化。霍夫直线
  脚本框架已经搭好,有能力的话可以添加更多的操作,
  比如霍夫圆,膨胀腐蚀等形态学操作
  项目目录
  主界面上方选择图片下方列出功能按钮
  点击按钮跳转至对应的功能界面
  按钮点击事件
  遍历按钮添加点击事件,因为所有按钮行为都是类似的buttons。map((button){button。on(click,function(view){。。。});});
  启动对应脚本,带上工具名字,图片路径,以及当前工作路径engines。execScriptFile(toolPath,{arguments:{toolName:toolName,imgPath:currentImgPath,fromPath:files。path(。)},});
  为什么要带上当前工作路径?
  因为常用的工具函数都在根目录放着,要在新脚本中导入根目录的工具函数,需要require工具函数的绝对路径varargsengines。myEngine()。execAletfromPathargs。fromPletyashuImgToolrequire(files。join(fromPath,。yashuImgTool));怎样给新脚本传递图片信息
  一开始想直接把URI传给新脚本,但是报错了,说用户不匹配之类的,
  然后就换了个办法,把图片保存到手机上,传递文件路径
  保存bitmapcurrentImgcom。stardust。autojs。core。image。ImageWrapper。ofBitmap(bitmap);letimgPathfiles。join(dirPath,img。png);files。createWithDirs(imgPath);images。save(currentImg,imgPath);
  URI转图片functiongetBitmapFromUri(uri){returnandroid。provider。MediaStore。Images。Media。getBitmap(context。getContentResolver(),uri);}
  工具脚本结构,以边缘检测为例边缘检测接收主脚本传递过来的数据varargsengines。myEngine()。execA接收的数据args{fromPath:datadataorg。autojs。autojsprocacheremoteproject3a26c38d0089d40061afbd09dacd38b5,imgPath:storageemulated0脚本opencvToolboximg。png,toolName:边缘检测,};导入工具模块letyashuImgToolrequire(files。join(fromPath,。yashuImgTool));
  模块里面是一些常用的函数
  处理图片读取灰度图varimgGrayImgcodecs。imread(imgPath,0);降噪Imgproc。GaussianBlur(imgGray,imgBlur,Size(3,3),0);边缘检测Imgproc。Canny(imgBlur,imgCanny,cannyParam。threshold1,cannyParam。threshold2,cannyParam。apertureSize,false);显示界面
  显示刚才处理过的图片letbitmapyashuImgTool。mat2bitmap(imgCanny);ui。img。setImageBitmap(bitmap);设置滑块监听
  由于滑块功能类似,因此可以设计一个通用的函数,批量设置监听seekbarBindingTextAndCannyParam(ui。threshold1ControlView,ui。threshold1ValueShowView,threshold1);seekbarBindingTextAndCannyParam(ui。threshold2ControlView,ui。threshold2ValueShowView,threshold2);seekbarBindingTextAndCannyParam(ui。apertureSizeControlView,ui。apertureSizeValueShowView,apertureSize);只响应用户的操作functionseekbarBindingTextAndCannyParam(seekbarView,textView,cannyParamName){seekbarView。setOnSeekBarChangeListener(newandroid。widget。SeekBar。OnSeekBarChangeListener({onProgressChanged:function(seekbar,progress,fromUser){if(fromUser){。。。}},}));}特殊参数,特殊处理
  测试的时候,apertureSize太大就会报错,偶数也报错,因此需要特殊处理;
  注意同时修改滑块显示的数值letvalueparseInt(progress);cannyParam〔cannyParamName〕if(cannyParamNameapertureSize){apertureSizevalue3;if(apertureSize20){apertureSize1;seekbarView。setProgress(progress1);}textView。setText(apertureSize);}else{textView。setText(value);}节流
  因为处理图片,需要一定的时间,因此使用防抖操作,
  在一定时间内,只处理用户最后一次的操作functiondebounce(fn,delay){delaydelay500;returnfunction(){if(timer){clearTimeout(timer);}timersetTimeout((){fn。apply(this,args);},delay);};}letdebounceRefreshMatyashuTool。debounce(refreshMat);刷新图片
  设置新图片,回收旧图片,避免内存泄漏functionrefreshMat(){ui。img。setImageBitmap(bitmap);ui。post(function(){oldBitmap。recycle();},200);}霍夫直线letHoughLinesPParam{threshold:22,阈值,只有获得足够交点的极坐标点才被看成是直线minLineLength:22,最小直线长度,有默认值0,表示最低线段的长度,比这个设定参数短的线段就不能被显现出来。maxLineGap:22,最大间隔,有默认值0,允许将同一行点与点之间连接起来的最大的距离。};letlinesnewMat();Imgproc。HoughLinesP(imgCanny,lines,1,Math。PI180,HoughLinesPParam。threshold,HoughLinesPParam。minLineLength,HoughLinesPParam。maxLineGap);
  以上就是边缘检测工具脚本的大概流程,其他opencv工具脚本流程与它类似
  备注
  不同软件测出来的阈值不一样,
  比如你用PS和autojs测出来的二值化阈值就不一样,
  因此,浏览初步效果可以在ps上看,
  要测出合适的数值,就要在手机上操作
  鉴于有的人不会调试脚本,我打算打包一个app。打包脚本遇到的问题
  打包后安装,提示包解析错误
  然后我就准备用autojs8。8。20打包,
  先运行一次脚本,脚本报错了Javaclassandroidx。core。view。ViewCompathasnopublicinstancefieldormethodnamedgetWindowInsetsController
  这个getWindowInsetsController方法是安卓11新增的全屏api,
  autojs8。8。20出来的时候,还没有支持安卓11,
  因此我把这个全屏函数trycatch了
  再次运行脚本,还是报错Error:Moduledatadataorg。autojs。autojsprocacheremoteproject3a26c38d0089d40061afbd09dacd38b5config。jsonnotfound。
  我在autojs9。0。14用的好好的,在autojs8。8。20就报错了,也是有点委屈;
  报错说找不到模块文件,那么我们去对应的目录下面看看都有什么文件
  shell打印文件目录cmdcddatauser0org。autojs。autojsprocacheremoteprojectcb63fce5e400e29f9d8b3bacbab39fa5varresultshell(cmd);log(result);console。show();if(result。code0){toast(执行成功);}else{toast(执行失败!请到控制台查看错误信息);}
  打印出来的内容
  明明有这个config。js文件的
  我知道哪里的问题了
  调试的时候用了上一次的args没注释args{fromPath:datadataorg。autojs。autojsprocacheremoteproject3a26c38d0089d40061afbd09dacd38b5,imgPath:storageemulated0脚本opencvToolboximg。png,toolName:hsv通道分离,};
  可气
  注释后运行就正常了
  再打包试试,还是提示解析错误
  然后就开始猜测是哪里错了
  打包的时候有一些东西要填写,我把中文和破折号等都给删掉,
  再次打包,居然可以了,看来是中文或者破折号的问题
  测试环境
  手机:Mi11Pro
  Android版本:12
  Autojs版本:9。1。14
  名人名言
  思路是最重要的,其他的百度,bing,stackoverflow,github,安卓文档,autojs文档,最后才是群里问问牙叔教程
  声明
  部分内容来自网络本教程仅用于学习,禁止用于其他用途
投诉 评论

露营只是吹一阵风?还是已经具有常态化的趋势图片来源于网络露营似乎火了!在社交平台上出现露营场景的短视频或者美图越来越多;在算数指数平台查询发现、大众对于露营的关注度从2021年至2022翻了近一倍。一个产业……北京国安平了,河北队赢了,武汉三镇赢得费劲这个不是手球?手臂是张开的,碰球了就是点球,可是视频裁判没介入,主裁判也并未鸣哨,不存在争议?谢峰赛后发布真说外援能力有限了?作为教练真不应该这么说,外援能力有限也……大侠传奇超人气超攻速武侠传奇新游,快来打造属于你的传奇江湖他强由他强,清风拂山岗;他横任他横,明月照大江。你瞧这些白云聚了又聚,散了又散,人生离合,亦复如斯。hello,大家好,不知道大家还记不记得上面的两句话,没错,出自《神雕侠侣》……从棋牌收藏中感受象棋之精妙玩棋之快乐文仇养东张崇文制作的象棋近日,在网上阅读了《少将张崇文制作的象棋》一文,不仅使我想起了本人在喜爱打牌且收藏扑克牌的同时,也由于喜爱下棋而集藏了不少各式各样的象棋。……吉林深山六道沟,不愿被唤醒世外桃源,是闯关东先民的霸王圈发现火绒沟村是个意外,几名迷路的摄影爱好者,突兀地出现在这长白山深处的小山村中。从此,这里开始热闹起来,2018年的年底,这个村子被列入第五批中国传统村落名录,从此游客络……美航天局局长美国计划2040年将人类送上火星据美国有线电视新闻网(CNN)报道,美国美国国家航空航天局(NASA)局长比尔纳尔逊(BillNelson)当地时间28日表示,美国计划在2040年将人类送上火星。纳尔逊称,我……西藏的庄园建筑西藏在过去是农奴制,由政府(官员),贵族,寺院(上层喇嘛)组成的统治阶级。所以西藏的寺院多,庄园也多,除了拉萨各地方也都有寺院和庄园。寺院的主持是上层喇嘛,而庄园主不是官员就是……autojsopencv工具箱牙叔教程简单易懂功能rgb通道分离hsv通道分离灰度化边缘检测二值化霍夫直线简介本项目集合了一些opencv的常用操作,rgb通……第三颗高分三号卫星入轨!组网完成后1天重访,携带哪些黑科技?一则能让国人大快人心的最新航天消息来了,4月7日7时47分,我国又有一颗高分三号卫星被长征火箭准确无误地送入了预定的近地轨道,这是我国高分三号卫星的第三颗,名字为高分三号03星……康养大概念多功能和泛产业康养,最好换一个地方,譬如:生态良好、环境清幽、交通方便、气候宜人、乡风淳厚、粮蔬有机、宁静安适的乡村,最好是近郊或近景。这就涉及康养旅游的概念,以及非常热火的森林康养、乡村养……3个增加舒适度的小东西,出差旅游在家都能用,妥妥精致感家是一个人感觉最自在的地方,可以根据自己的喜好或生活习惯,随意添置需要的生活用品,让生活变得更加舒适。但出差旅游或走亲访友时,环境的变化有时可能会让你产生不适感,而一些不……姚明怎么看?中国男篮明星球员深夜开骂别给脸不要,要不当面聊有人说,中国的足球运动员水平不行,脾气倒是不小。这不,中超球员成源就在酒吧里无故殴打女生,引起了大家的愤怒。几乎所有的球迷都站在被打女生这一边,指责成源的这种恶劣行为。成源这件……
白发的结局是什么漫夭和容乐在一起了吗保险公司是否应为其保险营销员私下代销第三方理财产寻找失败的脚印钛晨报马斯克发起出售特斯拉股票投票意见征询借呗启动品牌隔离工建设银行理财产品风险大吗肾友速看丨冬天是个危险的季节,肾友过冬指南请收好年以来作风建设年活动工作总结大衣哥儿子出事以后,我才发现孩子人生路上的坑,都是父母给挖的入学之惑种族究竟影响了什么1984年,北京一清洁女工捐给国家24亿元的巨款,她是何身份被刘海毁掉的女明星,杨幂看着还行,赵丽颖别留刘海了非学不可什么人不能喝菊花茶?如何正确泡菊花茶?公众的理解如何选择可靠的P2P理财平台情人节OL完美的化妆技巧一件运动衫教案谷歌怎么清除浏览器缓存中国为什么不多生产核武器?即拍即传,一键展示,让课堂有图有真相我的前半生罗子群这样不会爱自己的女人,嫁给谁都不会幸福为什么儿媳能战胜婆婆radley包大概多少钱?颜值逆天的小众包包从金融视野看地方债危机货物运输合同

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找