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. 边缘识别+轮廓识别+边框+二值化

    机器视觉 图片处理 一:图片二值化 1. 什么是二值化 2. 代码 3. 结果展示 二:寻找物体轮廓 1. 主要函数 2. 代码 3.结果展示 三:二值化+边框 四:结语 边缘识别+轮廓识别+边框+二 ...

  2. OpenCV:二值化函数cv2.threshold

    目录 功能作用: (一)简单阈值 (二)自适应阈值: (三)Otsu's二值化 功能作用: 二值化函数作用:图像的二值化就是将图像上的像素点的灰度值设置为0或255,这样将使整个图像呈现出明显的黑白效 ...

  3. 详解图像二值化 函数threshold

    在图像处理过程中,一般经常会用到图像的二值化函数 threshold 在日常使用中,虽然理解二值化的含义,但是具体函数的参数的定义还不是很清楚,下面简单纪录一下,增强记忆. threshold( In ...

  4. 计算机视觉(1)关于cvThreshold二值化函数

    计算机视觉(1)关于cvThreshold二值化函数 opencv中文说明中是这样说的: Threshold 对数组元素进行固定阈值操作 void cvThreshold( const CvArr* ...

  5. 二值化函数cvThreshold()参数CV_THRESH_OTSU的疑惑

    查看OpenCV文档cvThreshold(),在二值化函数cvThreshold(const CvArr* src, CvArr* dst, double threshold, double max ...

  6. 二值化函数cvThreshold()参数CV_THRESH_OTSU的疑惑【转】

    查看OpenCV文档cvThreshold(),在二值化函数cvThreshold(const CvArr* src, CvArr* dst, double threshold, double max ...

  7. python opencv图像二值化函数_python opencv 二值化 计算白色像素点的实例

    python opencv 二值化 计算白色像素点的实例 贴部分代码 #! /usr/bin/env python # -*- coding: utf-8 -*- import cv2 import ...

  8. Opencv java 二值化函数threshold (10)

    函数理解 threshold 英语的意思是门槛,门槛的意思说要么在门槛外,要么在门槛内,并且门槛具有一定的条件要求 接下来我们看在opencv中如何使用该函数 Imgproc.threshold(sr ...

  9. MATLAB图像二值化函数im2bw与imbinarize对给定阈值的内部处理细节

    MATLAB图像处理工具包中的im2bw函数和imbinarize函数均可以实现灰度图像的二值化功能,且在MATLAB R2018a之后推荐使用imbinarize.但两者在内部处理图像的时候具有一些 ...

最新文章

  1. Auto-Machine-Learning初探
  2. python定义类_提升你的Python编程能力,细说类的继承,拿走不谢
  3. 【反爬】某网站雪碧图反爬
  4. 幂的末尾(信息学奥赛一本通-T1084)
  5. js限制input输入
  6. 分布式系统的数据一致性问题
  7. SQL语句 常用语句
  8. 基于单片机的电子密码锁设计
  9. 解密PDF---不支持双面打印打印机-------->双面打印操作
  10. 大合集!近两年目标跟踪资源全汇总(论文、模型代码、优秀实验室)
  11. 基于MFFMB的电商评论文本分类研究
  12. memcmp的用法 详讲
  13. “NODE星球”空降格尔木,首创沉浸体验式戈壁嘉年华颠覆想象
  14. 抖音滑块以及轨迹分析
  15. Redis高可用——主从复制、哨兵模式、集群
  16. C# SharpZipLib 压缩中文文件名乱码的解决办法(必看 实测有用)
  17. 一文梳理CSS必会知识点
  18. 搭建数据指标体系(抖音)
  19. 娶一位俄罗斯姑娘当老婆是一种什么样的感觉?
  20. POJ题单及算法训练练习顺序

热门文章

  1. 世嘉酒店预订管理系统
  2. 彩电行业步入3.0时代,创维领跑OLED普及新赛道
  3. 如何利用 ArcGIS Pro 和 Landsat 8 图像计算叶绿素指数和全球环境监测指数
  4. 重测序专题(二)| 不断完善的参考基因组
  5. 联想服务器ip无法修改密码,联想(Lenovo)路由器设置好了不能上网的解决办法
  6. java计算机毕业设计美容院业务管理系统源码+系统+mysql数据库+lw文档
  7. 47.逻辑卷管理2,物理卷详解,pvscan,pvcreate,pvremove,pvchange,pvdisplay
  8. 超详细!ArrayList源码图文解析
  9. 兼容10.15系统极品飞车14:热力追踪 for Mac
  10. kaggle 在无网络的环境下安装packages的方法