注册 登录
发贴工具
查看: 7|回复: 0
打印 上一主题 下一主题

[24小时收录超级好的网站] AIWORK软件图像视觉处理[opencv]小结1

[复制链接]

2393

主题

2441

帖子

1万

积分

积分
14562
跳转到指定楼层
楼主
AIWORK软件图像视觉处理[opencv]小结1

AIWORK软件图像视觉处理[opencv]小结1 群发软件发帖工具

AIWORK软件图像视觉处理[opencv]小结1 群发软件发帖工具

AIWORK软件图像视觉处理[opencv]小结1 群发软件发帖工具

🎨图像视觉处理[opencv]小结1

// 1. HSV颜色变换:对图像进行HSV通道的颜色变换,可调整色相、饱和度、对比度
// 参数说明:输入图像(Mat)、色相参数(int)、饱和度参数(int)、对比度参数(int)
// 返回值:处理后的Mat图像
function hsvTransform() {
    // 截取屏幕区域(432,768)大小、100质量的图像并转为Mat格式
    var mat = screen.screenShot(432, 768, 100).getMat();
    // 调用HSV变换:色相17、饱和度17、对比度17
    opencv.HSV(mat, 17, 17, 17);
    // 输出处理结果
    printl(mat);
    return mat;
}
let hsvResult = hsvTransform();


// 2. 对比度调整:调整图像对比度,通过阈值控制强弱
// 参数说明:输入图像(Mat)、对比度阈值(double,值越大对比度越强)
// 返回值:处理后的Mat图像
function adjustContrast() {
    var mat = screen.screenShot(432, 768, 100).getMat();
    // 调整对比度:阈值0.5(降低对比度)
    opencv.adjustContrast(mat, 0.5);
    printl(mat);
    return mat;
}
let contrastResult = adjustContrast();


// 3. Bitmap转Mat:将Bitmap格式图像转换为OpenCV处理用的Mat格式
// 参数说明:输入图像(Bitmap)
// 返回值:转换后的Mat图像
function bitmapToMat() {
    // 先获取屏幕截图的Bitmap对象
    var screenshot = screen.screenShot(432, 768, 100);
    var bmp = screenshot.getBitmap();
    // 转换为Mat格式
    var mat = opencv.bitmapToMat(bmp);
    printl(mat);
    return mat;
}
let matFromBmp = bitmapToMat();


// 4. 颜色过滤:保留设定的目标颜色,过滤其他颜色,适用于固定颜色目标筛选
// 参数说明:输入图像(Mat)、目标颜色数组(String[],格式["#RRGGBB",...])、匹配阈值(int)
// 返回值:过滤后的Mat图像
function colorFilter() {
    var mat = screen.screenShot(432, 768, 100).getMat();
    // 定义目标颜色数组(土黄、金黄等)
    var colors = ["#615018", "#D9C15D", "#010000", "#F4C51F"];
    // 过滤颜色:阈值2(允许轻微颜色偏差)
    mat = opencv.colorFilter(mat, colors, 2);
    printl(mat);
    return mat;
}
let filterResult = colorFilter();


// 5. 区域截图:按百分比裁剪图像或保留指定区域(区域外变白)
// 参数说明:输入图像(Mat)、区域范围(double[],[左上角x%,左上角y%,右下角x%,右下角y%])、是否裁剪(boolean)
// 返回值:处理后的区域图像(Mat)
function extractRegion() {
    var mat = screen.screenShot(432, 768, 100).getMat();
    // 定义区域:左上角(3.935%,16.406%)到右下角(53.472%,63.281%)
    var region = [0.03935, 0.16406, 0.53472, 0.63281];
    // 处理区域:false表示区域外变白,不裁剪
    opencv.extractRegion(mat, region, false);
    printl(mat);
    return mat;
}
let regionResult = extractRegion();


// 6. 面积过滤:保留图像中面积在指定范围内的区域,过滤过小/过大区域
// 参数说明:输入图像(Mat)、最小面积(double)、最大面积(double)
// 返回值:过滤后的Mat图像
function inArea() {
    var mat = screen.screenShot(432, 768, 100).getMat();
    // 保留面积1~10000的区域
    opencv.inArea(mat, 1, 10000);
    printl(mat);
    return mat;
}
let areaResult = inArea();


// 7. 边缘提取:基于Canny算法提取图像边缘,高阈值通常为低阈值2~3倍
// 参数说明:输入图像(Mat)、低阈值(double)、高阈值(double)
// 返回值:边缘提取后的Mat图像
function cannyEdge() {
    var mat = screen.screenShot(432, 768, 100).getMat();
    // 提取边缘:低阈值50,高阈值100(符合2倍关系)
    opencv.Canny(mat, 50, 100);
    printl(mat);
    return mat;
}
let cannyResult = cannyEdge();


// 8. OCR识别:通过训练字库识别指定区域文字,返回识别结果
// 参数说明:输入图像(Mat)、字库路径(String)、相似度(double 0~1)、预期文字数(int)、识别区域(double[])
// 返回值:ocrResult对象(含文字及位置信息)
function ocr() {
    var mat = screen.screenShot(432, 768, 100).getMat();
    // 识别区域:全图([0,0,1,1]表示0%~100%范围)
    var ocrRegion = [0, 0, 1, 1];
    // 调用OCR:字库"图色976442.ocr",相似度0.8,不限制文字数
    var ocrRes = opencv.OCR(mat, '图色976442.ocr', 0.8, 0, ocrRegion);
    // 输出识别结果
    ocrRes ? printl("OCR识别结果:" + ocrRes.getAllString()) : print.err('OCR识别失败');
    return ocrRes;
}
let ocrResult = ocr();


// 9. CV文件OCR:通过预定义的CV文件(含字库和区域)进行OCR识别
// 参数说明:CV文件路径(String)
// 返回值:ocrResult对象(含识别结果)
function ocrEx() {
    // 读取CV文件并识别
    var ocrExRes = opencv.OCREx('图色598321.cv');
    ocrExRes ? printl("CV文件OCR结果:" + ocrExRes.getAllString()) : print.err('CV文件OCR失败');
    return ocrExRes;
}
let cvOcrResult = ocrEx();


// 10. 图像平滑:减少图像噪声、模糊图像,通过滤波和去毛边实现
// 参数说明:输入图像(Mat)、滤波值(int,值越大越平滑)、去毛边大小(int)
// 返回值:平滑后的Mat图像
function smooth() {
    var mat = screen.screenShot(432, 768, 100).getMat();
    // 平滑处理:滤波值3,去毛边2
    var smoothMat = opencv.Smooth(mat, 3, 2);
    printl(smoothMat);
    return smoothMat;
}
let smoothResult = smooth();


// 11. 多点比色:验证图像中多个指定坐标的颜色是否符合预期,全匹配返回true
// 参数说明:输入图像(Mat)、目标点数组(String[],格式"x,y,#RRGGBB")、颜色误差(int)、坐标误差(int)、相似度(double)
// 返回值:boolean(是否全匹配)
function checkColors() {
    var mat = screen.screenShot(900, 1600, 100).getMat();
    // 目标点:x,y坐标+颜色(如"325,317,#F4C51F")
    var points = ['325,317,#F4C51F', '357,364,#070200', '336,345,#100500', '356,386,#F4C51F'];
    // 多点比色:颜色误差2,坐标误差5,相似度0.95
    var isMatch = opencv.checkColors(mat, points, 2, 5, 0.95);
    isMatch ? printl('多点比色成功') : print.err('多点比色失败');
    return isMatch;
}
let colorCheckResult = checkColors();


// 12. CV文件多点比色:通过预定义的CV文件(含多点坐标和颜色)验证匹配
// 参数说明:CV文件路径(String)
// 返回值:boolean(是否匹配成功)
function checkColorsEx() {
    // 基于CV文件验证多点比色
    var isExMatch = opencv.checkColorsEx('图色246814.cv');
    isExMatch ? printl('CV文件多点比色成功') : printl('CV文件多点比色失败');
    return isExMatch;
}
let cvColorCheckResult = checkColorsEx();


// 13. 闭运算:先膨胀后腐蚀,用于填充图像小孔、连接邻近区域
// 参数说明:输入图像(Mat)、核大小(int,值越大效果越强)
// 返回值:闭运算处理后的Mat图像
function closeImg() {
    var mat = screen.screenShot(900, 1600, 100).getMat();
    // 闭运算:核大小3
    opencv.closeImg(mat, 3);
    printl(mat);
    return mat;
}
let closeResult = closeImg();

方法 1:HSV 颜色变换

项目

内容

功能

对图像进行 HSV 通道的颜色变换

函数签名

Mat HSV(Mat arg0, int arg1, int arg2, int arg3)

返回值

Mat

参数说明

- Mat arg0

:输入图片- int arg1

:色相参数- int arg2

:饱和度参数- int arg3

:对比度参数

案例

opencv.HSV(Mat, 0, 0, 0)



let mat:Mat=图色875078();
printl(mat);



function 图色875078(){
   //截屏并转成mat格式
   var mat=screen.screenShot(432,768,100).getMat();

  //HSV颜色变换
  opencv.HSV(mat,17,17,17)
  return mat;

}

方法 2:对比度调整(adjustContrast

项目

内容

功能

调整图像对比度

函数签名

Mat adjustContrast(Mat arg0, double arg1)

返回值

Mat

参数说明

- Mat arg0

:mat 格式的输入图片- double arg1

:用于调整对比度的阈值

案例

opencv.adjustContrast(Mat, 0)




let mat:Mat=图色195333();
printl(mat);



function 图色195333(){
   //截屏并转成mat格式
   var mat=screen.screenShot(432,768,100).getMat();

  //二值化
  opencv.threshold(mat,50,150);
  return mat;

}

方法 3:bitmap 图转 mat(bitmapToMat

项目

内容

功能

将 Bitmap 格式图像转换为 Mat 格式图像

函数签名

Mat bitmapToMat(Bitmap arg0)

返回值

Mat

参数说明

- Bitmap arg0

:Bitmap 格式的输入图像

案例

opencv.bitmapToMat(bmp)

// 先获取截图的Bitmap对象
var screenshot = screen.screenShot(432, 768, 100);
var bmp = screenshot.getBitmap();
// 再将Bitmap转换为Mat
var mat = opencv.bitmapToMat(bmp);

printl(mat)

方法 4:颜色过滤(colorFilter

项目

内容

功能

保留设定的颜色,去除其他颜色;可有效对颜色不变的目标进行筛选

函数签名

Mat colorFilter(Mat arg0, String[] arg1, int arg2)

返回值

Mat

参数说明

- Mat arg0

:输入图片- String[] arg1

:颜色数组(示例:["#000000","#121212"]

- int arg2

:阈值

案例

opencv.colorFilter(Mat, String[], 0)

let mat:Mat=图色254847();
printl(mat);

function 图色254847(){
   //截屏并转成mat格式
   var mat=screen.screenShot(432,768,100).getMat();

   //颜色过滤并更新mat变量
   mat = opencv.colorFilter(mat, ["#615018", "#D9C15D", "#010000", "#F4C51F"], 2);
   return mat;
}

方法 5:区域截图(extractRegion

项目

内容

功能

图片按照设定百分比区域进行裁剪;第三个参数为是否剪切:若为true

,则减掉多余区域只保留设定图像;若为false

,则把区域外的图变成白色、区域内保持不变

函数签名

Mat extractRegion(Mat arg0, double[] arg1, boolean arg2)

返回值

Mat

参数说明

- Mat arg0

:输入图片- double[] arg1

:百分比区域- boolean arg2

:是否裁剪

案例

opencv.extractRegion(Mat, double[], true)



let mat:Mat=图色651862();
printl(mat);



function 图色651862(){
   //截屏并转成mat格式
   var mat=screen.screenShot(432,768,100).getMat();

  //区域截图
  opencv.extractRegion(mat,[0.0393518518518519,0.1640625,0.534722222222222,0.6328125],false)
  return mat;

}

方法 6:面积过滤(inArea

项目

内容

功能

面积过滤

函数签名

Mat inArea(Mat arg0, double arg1, double arg2)

返回值

Mat

参数说明

- Mat arg0

:mat 格式的输入图片- double arg1

:最小面积- double arg2

:最大面积

案例

opencv.inArea(Mat, 0, 0)



let mat:Mat=图色100892();
printl(mat);



function 图色100892(){
   //截屏并转成mat格式
   var mat=screen.screenShot(432,768,100).getMat();

  //面积过滤
  opencv.inArea(mat,1,10000)
  return mat;

}

方法 7:边缘提取(Canny

项目

内容

功能

提取图像边缘;一般高阈值是低阈值的 2 - 3 倍(例如低阈值为 50 时,高阈值为 150)

函数签名

Mat Canny(Mat arg0, double arg1, double arg2)

返回值

Mat

参数说明

- Mat arg0

:输入图像- double arg1

:最低阈值- double arg2

:最高阈值

案例

opencv.Canny(mat, 50, 150)



let mat:Mat=图色734271();
printl(mat);



function 图色734271(){
   //截屏并转成mat格式
   var mat=screen.screenShot(432,768,100).getMat();

  //边缘提取
  opencv.Canny(mat,50,100)
  return mat;

}

方法 8:OCR(OCR

项目

内容

功能

通过训练字库识别 OCR

函数签名

ocrResult OCR(Mat arg0, String arg1, double arg2, int arg3, double[] arg4)

返回值

ocrResult

参数说明

- Mat arg0

:图片- String arg1

:字库文件- double arg2

:相似度- int arg3

:文字数量- double[] arg4

:区域范围

案例

opencv.OCR(Mat,"",0,0,double[])



var ocrcrResult=图色976442();
if(ocr!=null){
   printl(ocr.getAllString())
   
}else{
   print.err('查找图色976442失败')
}



function 图色976442(){
   //截屏并转成mat格式
   var mat=screen.screenShot(432,768,100).getMat();

  //OCR
  return opencv.OCR(mat,'图色976442.ocr',0.8,0,[0,0,1,1])
}

方法 9:cv 文件 OCR(OCREx

项目

内容

功能

cv 文件 OCR(对指定 cv 文件进行 OCR 识别)

函数签名

ocrResult OCREx(String arg0)

返回值

ocrResult

参数说明

- String arg0

:cv 文件名

案例

opencv.OCREx("")

var ocr1=opencv.OCREx('图色598321.cv');
if(ocr1!=null){
   printl(ocr1.getAllString());
}

方法 10:图像平滑(Smooth

项目

内容

功能

图像平滑

函数签名

Mat Smooth(Mat arg0, int arg1, int arg2)

返回值

Mat

参数说明

- Mat arg0

:mat 格式的输入图片- int arg1

:滤波值- int arg2

:去毛边大小

案例

opencv.Smooth(Mat, 0, 0)

var mat = screen.screenShot(432, 768, 100).getMat();
var smoothMat = opencv.Smooth(mat, 0, 0);
printl(smoothMat);

方法 11:多点比色(checkColors

项目

内容

功能

多点比色;从图像中遍历查找所有的坐标和对应的颜色是否符合,符合返回true

,有一个不符则返回false

函数签名

boolean checkColors(Mat arg0, String[] arg1, int arg2, int arg3, double arg4)

返回值

boolean

参数说明

- Mat arg0

:mat 格式图片- String[] arg1

:颜色数组(示例:['10,9,#123233','9,9,#434323']

- int arg2

:颜色误差范围- int arg3

:坐标误差范围- double arg4

:相似度

案例

opencv.checkColors(Mat, String[], 0, 0, 0)



var result=图色717031();
if(result==true){
   printl('找到图色717031')
  
}else{
  print.err('查找图色717031失败')
}
            

function 图色717031(){
   //截屏并转成mat格式
   var mat=screen.screenShot(900,1600,100).getMat();

  //比色
  return opencv.checkColors(mat,['325,317,#F4C51F','357,364,#070200','336,345,#100500','356,386,#F4C51F'],2,5,0.95)
}

方法 12:cv 文件多点比色(checkColorsEx

项目

内容

功能

cv 文件多点比色

函数签名

boolean checkColorsEx(String arg0)

返回值

boolean

参数说明

- String arg0

:cv 文件名

案例

opencv.checkColorsEx("")

//比色是否成功
var find=opencv.checkColorsEx('图色246814.cv');
if(find==true){
   printl('找到');
}

方法 13:闭运算(closeImg

项目

内容

功能

闭运算

函数签名

Mat closeImg(Mat arg0, int arg1)

返回值

Mat

参数说明

- Mat arg0

:输入图片- int arg1

:核大小

案例

opencv.closeImg(Mat, 0)



let mat:Mat=图色308249();
printl(mat);



function 图色308249(){
   //截屏并转成mat格式
   var mat=screen.screenShot(900,1600,100).getMat();

  //闭运算
  opencv.closeImg(mat,3)
  return mat;

}

unto浏览器H5方法小结nextAIWORK软件图像视觉处理[opencv]小结1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读了
    采集亚马逊正版群发工具有没有?
    Apr.20旅行X心语今天来说说YYPOST新功能的一个灵活用法,采集亚马逊商品信息,并且获得排名的软件,亚马逊现在越来越多客户做,淘宝的水是越来越清了,以前做电商的客户,现在都转战到外国,最赚钱的要数一些客户往亚马逊里堆了吧,拿我这个YYPOST的客户,最多的是采集,分析排名,刷价格,刷数量,改价,刷访问量等等技术

    企业发展B2B网站有什么东东软件可以发呢
    标题企业发展网B2B软件,现在虽然B2B网站收录不错,可愁的是心急的人们,他们太想一口吃撑胖子了,发帖宣传虽然不能像佛系那样淡定,但也不能像跑火车那般急躁对待,自己内容不收录,完全是自己操作内容问题,可以参考一下别人的内容是怎么弄的,然后自己要试着转变,而且收录这个内容,常常会变化的,不是一种规则就吃到老

    搜房天下房聊软件哪一个好呢
    本帖最后由 发帖软件 于 2019-5-22 16:15 编辑 2搜房天下群发房聊信息软件,开始本来打算做58同城的,但发一个就要一次点触验证码,这就让人没有感觉到存在的价值了吧,都是卖二手房和新房的搜房天下倒是可以发即时聊天信息,也没有发现他这个网站有啥子限制,登陆一个搜房天下账号,然后采集回来分类列表的网址,然后就一

    大家坛有没有好用的群发工具下载呢
    当你的笑容给我礼貌的招呼,大家坛全自动发帖软件,宣传推广是一场持久战,总是有一些人把软件用了一天,或是几个小时,就觉得自己付出太多了,那加进来的粉丝,或是流量,应该是和宣传多少成正比的,其实没有这么便宜的事,就像很多阅读量超过一百万的视频,或是电影,真正会在屏幕打赏的人不会超过三千,真正大额打赏给主

    群发正版软件中国塑料网
    中国塑料网群发软件YYPOST脚本下载地址,这个网站会有一个很奇怪的问题就是你在首页登陆无半个验证码,但在登陆网址登陆就会有一个验证码,所以我们灵活一些,在首页登陆就不用输入验证码了哈。网站秒收录比较高,但发的都是五金和建筑行业,先前有很多人都是发土建工程的大公司操作的,现在这个网站专为那个行业诞生的吧。

    OpenStreetMap网站正版2019年发帖工具下载
    本帖最后由 发帖软件 于 2019-5-21 11:13 编辑 OpenStreetMap网站全自动群发,OpenStreetMapOpenStreetMap(简称OSM,中文是公开地图)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。有的人编辑地图然后等收录,有的人发日志等收录,我们这里也是利用地图日志做为宣传的目标,简单的脚本理

    搜房天下全自动收短信全自动识别验证码注册账号软件
    房天下自动注册机,这个脚本是前几天发房聊的脚本廷伸品种,这个脚本能做到自动注册账号,自动保存账号,自动发房聊的效果,不过今天我们主要说一说怎么注册账号写脚本吧,这个搜房天天下的账号,可以发提问,可以发房聊,发论坛,发博客,还有发个人中心页都是有秒收的效果的,这样就省去了去买号,去乱花钱的效果了吧,而

    企业邮箱安卓端有什么APP软件可以发的呢
    请输入标题企业邮箱安卓发发送邮箱脚本,这个脚本是利用企业邮箱进行群发的,全程是一种模拟手工操作的过程,所以封号是很少的,而且企业邮箱群发到普通QQ邮箱不容易进垃圾箱中的,所以这个脚本也是这样的原理,不过最好是利用一些多开器,登陆多点的QQ邮箱账号会比较流畅一些,然后用软件一个一个的切换APP进行群发邮件会

    头条留评论软件有没有好用的呢?
    今天整一个今日头条留言软件,对于留言YYPOST是优势是比较大的存在,因为他往往专注一些下拉定位的优点,像今日头条这样,还是需要一些特殊下拉定位的,因为他新闻有长有短,有图有视频的,所以综合起来定位是比较难的,如果用POST也不是很轻松可以破解他的加密参数。这个脚本也是有一个不好的地方就是换号会比较麻烦,您电

    单网页生成神器
    最近新技术,网页生成机占领了整个网络的半壁江山,效果很疯狂,虽然不知道能持续多久,作为开发软件的领头者,一直在找收录的方法,一直在努力创新着,一直被人模仿,却从没有被超越过,这个网页生成机,已经出来有一段时间了,一直没有拿出来分享,醉过醉过,它是利用的一些小小收录漏洞整的,您最好用一些老站域名,进行

关闭
快速回复 返回列表 返回顶部
本站自动发贴软件,是现在最流行的做脚本软件,这种发贴工具,不但发贴收录快,而且抢占好的先机,完全自由编辑,实现针对性群发模拟操作,软件可以顶贴,也可以发贴,可以兼容支持Discuz、PHPWind、Dvbbs三大主流论坛,有手机验证码收件,邮件收发的功能,支持验证码识别,注册问题识别,多线程任务,自动上传头像,自动激活注册邮件,兼容防注册插件,本站软件原创正版,更新效率最快的原创软件。 『网络推广软件』『自动发帖软件』『 自动发帖