最简单的ocr识别
//截图
var img = screen.screenShotFull();
//ocr识别
var ocrres=img.ocr(0, 0, 1, 1)
printl(ocrres)
//释放内存 否则会内存泄漏
img.close();
先对图像进行处理后再ocr识别 解决部分文字不准问题
//截屏并转成mat格式
var img = screen.screenShotFull();
var mat = img.getMat();
//二值化
opencv.threshold(mat,50,200)
//printl(mat)
//转成image
var img2 = new Image();
img2.readMat(mat)
printl(img2)
var ocrres=img2.ocr(0, 0, 1, 1)
printl(ocrres)
//释放内存
mat.close();
img.close();
img2.close();
可以尝试颜色翻转后再识别
//截屏并转成mat格式
var img = screen.screenShotFull();
var mat = img.getMat();
//颜色翻转
opencv.invertColor(mat)
//printl(mat)
//转成image
var img2 = new Image();
img2.readMat(mat)
printl(img2)
var ocrres=img2.ocr(0, 0, 1, 1)
printl(ocrres)
//释放内存
mat.close();
img.close();
img2.close();
这段代码是使用AutoAppIOS自动化IDE进行图像处理和OCR识别的示例。AutoAppIOS是一个用于自动化iOS设备操作的工具,支持通过脚本实现屏幕截图、图像处理等多种功能。代码中使用了OpenCV库来进行图像的二值化和颜色翻转操作,并使用了OCR(光学字符识别)功能来识别图像中的文字。以下是代码的详细说明:
var img = screen.screenShotFull(); // 截取屏幕的全屏截图,返回一个Image对象
var ocrres = img.ocr(0, 0, 1, 1); // 对截图进行OCR识别,这里(0,0,1,1)参数看起来有问题,通常应该是指定要识别的矩形区域的坐标和大小,可能是代码示例中的错误
printl(ocrres); // 打印OCR识别的结果
img.close(); // 释放截图占用的内存,防止内存泄漏
注意:ocr
方法中的参数(0, 0, 1, 1)
似乎不正确,可能需要根据实际情况调整为具体的坐标和尺寸。
var img = screen.screenShotFull(); // 截取屏幕的全屏截图
var mat = img.getMat(); // 将Image对象转换为能够被OpenCV处理的Mat对象
opencv.threshold(mat, 50, 200); // 对Mat对象进行二值化处理,50是阈值,200是最大值。低于50的像素点会被设置为0,高于50的会被设置为200
var img2 = new Image(); // 创建一个新的Image对象
img2.readMat(mat); // 将处理过的Mat对象转换回Image对象
printl(img2); // 打印Image对象的描述信息
var ocrres = img2.ocr(0, 0, 1, 1); // 对处理后的Image对象进行OCR识别
printl(ocrres); // 打印OCR识别的结果
mat.close(); // 释放Mat对象占用的内存
img.close(); // 释放原始截图占用的内存
img2.close(); // 释放处理后的新Image对象占用的内存
var img = screen.screenShotFull(); // 截取屏幕的全屏截图
var mat = img.getMat(); // 将Image对象转换为Mat对象
opencv.invertColor(mat); // 对Mat对象进行颜色翻转,即颜色取反
var img2 = new Image(); // 创建一个新的Image对象
img2.readMat(mat); // 将处理过的Mat对象转换回Image对象
printl(img2); // 打印Image对象的描述信息
var ocrres = img2.ocr(0, 0, 1, 1); // 对处理后的Image对象进行OCR识别
printl(ocrres); // 打印OCR识别的结果
mat.close(); // 释放Mat对象占用的内存
img.close(); // 释放原始截图占用的内存
img2.close(); // 释放处理后的新Image对象占用的内存
在这段代码中,主要的步骤包括截图、将截图转换为适合OpenCV处理的格式、使用OpenCV进行图像处理(如二值化和颜色翻转)、将处理后的图像转换回Image对象、进行OCR识别以及最后释放所有占用的内存。每个过程都伴随着内存管理的操作,确保自动化操作不会导致内存泄漏问题。
欢迎光临 B2B网络软件 (http://bbs.niubt.cn/) | Powered by Discuz! X3.2 |