【文字识别】Lua 二值化函数
LUA二值化效率较低,该函数只适合小范围二值化。
学习算法和思路可转化成C语言提高效率。
function binarizeImage(t)local getColorRGB = getColorRGB --[[定义取色函数]]local rect = t.rect or {0,0,0,0}local diff = t.diff or {"0x000000-0x000000"}local color = {} --[[diff参数数值化]]local tab = {} --[[二值化存储]]for k,v in pairs(diff) doif color[k]==nil thenlocal rgb_1 = tonumber(string.sub(v,1,8)) --[[参数颜色]]local rgb_2 = tonumber(string.sub(v,10,17)) --[[参数偏色]]color[k] = {lr = rgb_1/0x10000, --[[RGB]]lg = rgb_1%0x10000/0x100,lb = rgb_1%0x100,sr=rgb_2/0x10000, --[[RGB阈值]]sg = rgb_2%0x10000/0x100,sb=rgb_2%0x100,}endendkeepScreen(true) --[[保持屏幕,只在一张图片获取颜色]]for y=rect[2],rect[4] dolocal y1 = y - rect[2] + 1tab[y1] = {}for x=rect[1],rect[3] dolocal x1 = x - rect[1] + 1for i = 1,#color do --[[diff多参数循环]]local lr,lg,lb = color[i].lr,color[i].lg,color[i].lblocal sr,sg,sb = color[i].sr,color[i].sg,color[i].sblocal r,g,b = getColorRGB(x,y) --[[获取颜色RGB,搭配保持屏幕函数提高效率]]if math.abs(lr-r) > sr or math.abs(lg-g) > sg or math.abs(lb-b) > sb thentab[y1][x1] = 0 --[[不匹配]]elsetab[y1][x1] = 1 --[[匹配]]breakendendendendkeepScreen(false) --[[关闭保持屏幕]]return tab
end--[[小范围]]
local co = {rect = {597,305,672,333},diff = {"0xf3f3f4-0x555555"}}
local t = binarizeImage(co) -->耗时69ms
--[[全屏单色]]
local co = {rect = {0, 0, 719, 1279},diff = {"0xf3f3f4-0x555555"}}
local t = binarizeImage(co) -->耗时2623ms
--[[全屏多色]]
local co = {rect = {0, 0, 719, 1279},diff = {"0xf3f3f4-0x555555","0xf3f3f4-0x555555"}}
local t = binarizeImage(co) -->耗时4982ms
【文字识别】Lua 二值化函数相关推荐
- 边缘识别+轮廓识别+边框+二值化
机器视觉 图片处理 一:图片二值化 1. 什么是二值化 2. 代码 3. 结果展示 二:寻找物体轮廓 1. 主要函数 2. 代码 3.结果展示 三:二值化+边框 四:结语 边缘识别+轮廓识别+边框+二 ...
- OpenCV:二值化函数cv2.threshold
目录 功能作用: (一)简单阈值 (二)自适应阈值: (三)Otsu's二值化 功能作用: 二值化函数作用:图像的二值化就是将图像上的像素点的灰度值设置为0或255,这样将使整个图像呈现出明显的黑白效 ...
- 详解图像二值化 函数threshold
在图像处理过程中,一般经常会用到图像的二值化函数 threshold 在日常使用中,虽然理解二值化的含义,但是具体函数的参数的定义还不是很清楚,下面简单纪录一下,增强记忆. threshold( In ...
- 计算机视觉(1)关于cvThreshold二值化函数
计算机视觉(1)关于cvThreshold二值化函数 opencv中文说明中是这样说的: Threshold 对数组元素进行固定阈值操作 void cvThreshold( const CvArr* ...
- 二值化函数cvThreshold()参数CV_THRESH_OTSU的疑惑
查看OpenCV文档cvThreshold(),在二值化函数cvThreshold(const CvArr* src, CvArr* dst, double threshold, double max ...
- 二值化函数cvThreshold()参数CV_THRESH_OTSU的疑惑【转】
查看OpenCV文档cvThreshold(),在二值化函数cvThreshold(const CvArr* src, CvArr* dst, double threshold, double max ...
- python opencv图像二值化函数_python opencv 二值化 计算白色像素点的实例
python opencv 二值化 计算白色像素点的实例 贴部分代码 #! /usr/bin/env python # -*- coding: utf-8 -*- import cv2 import ...
- Opencv java 二值化函数threshold (10)
函数理解 threshold 英语的意思是门槛,门槛的意思说要么在门槛外,要么在门槛内,并且门槛具有一定的条件要求 接下来我们看在opencv中如何使用该函数 Imgproc.threshold(sr ...
- MATLAB图像二值化函数im2bw与imbinarize对给定阈值的内部处理细节
MATLAB图像处理工具包中的im2bw函数和imbinarize函数均可以实现灰度图像的二值化功能,且在MATLAB R2018a之后推荐使用imbinarize.但两者在内部处理图像的时候具有一些 ...
最新文章
- Rust 数据类型介绍
- 官网的Ext direct包中.NET版的问题
- 【牛客网】牛客练习赛19 F 算式子【数学--递推 、前缀、数字】
- Tomcat 启动时 SecureRandom 非常慢解决办法
- LeetCode 13罗马数字转整数14最长公共前缀
- MySQL sql99语法—左(右)外连接
- 漫谈单体架构与微服务架构(上):单体架构
- js解析java对象数组_js接收并转化Java中的数组对象的方法
- 让计划任务生成的文件中包含当前日期
- python网页提交表单_使用Python中的POST请求通过网站表单上传基本文件
- J2EE事务并发控制策略总结
- webpack2.7.0配置不同的打包环境
- JavaScript 代码的加入
- 算法基本和常见排序算法
- Kubernetes网络自学系列 | 千呼万唤始出来:veth pair
- 计算机行业常见英语,计算机行业英文词汇
- shell中计算执行命令所用耗时
- Unity 语音通话功能
- FL Studio2023终身免费升级适合电音舞曲DJ使用
- less @media根据宽度判断不同屏幕手机样式
热门文章
- offbye的Dottext 1.0 Beta 2汉化美化版发布了!欢迎下载
- highcharts去掉右下角highchart.com和右上角的图标(三个小横杆)
- [前端]-JQuery学习
- 应聘对白_权力游戏对白系列调查
- Linux系统开机自启动程序设置
- matlab用fill三维,使用matlab绘制三维图形的方法
- 百度编辑器整合html,怎么把百度编辑器(Ueditor)整合到dedecms中
- java抽象类的特点
- 4月18号软件更新资讯合集
- 什么是接口?什么是接口测试?什么是接口自动化测试?