




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习脚本制作:用按键精灵找图找色 RGB分量之偏色与彩色图片转黑白来源:按键学院 【按键精灵】 颜色对于制作脚本来说是至关重要的,找图找字找色都需要使用到颜色。所以,对颜色的认识是也是非常重要的。颜色知识大解剖 【颜色是由三原色混合形成的】* 即红、绿、蓝。三原色可以混合出所有的颜色。* 我们通常把三原色简称为RGB(R、G、B是红(Red)、绿(Green)、蓝(Blue)的缩写)* R的值区间是 0255这是十进制,转换成十六进制就是:00-FF (G、B也是一样)【RGB】*我们前面说,一个颜色是由三原色RGB构成的,例如白色(R、G、B值都为255时显示白色):*十六进制表示:FFFFFF (十六进制一共有六位,每两位表示一个原色)*十进制表示:255,255,255 【按键精灵颜色表示格式BGR】应该有很多童鞋都知道,其实,我们按键的颜色表示并不是RGB的顺序来表示的,按键使用的表示方式是BGR,把R和B的位置互换了。 所以,有的时候,我们可能会遇到这样的情况: 甲:“为什么!为什么我用XX颜色工具获取到的颜色不能识别!”乙:“哎呀,你看看你代码啊,那么乱说不定哪里错了。”甲:“滚!给我圆滚滚的滚!哥的代码虽乱但那都是精华,怎么会错。甲因为不知道颜色知识,不知道按键颜色排列是BGR,也不知道xx颜色工具获取的颜色排列是RGB,所以苦恼了很久都没有找到问题所在。【RGB颜色格式转换为BGR】如果我们遇到这样的情况怎么办呢?其实,解决方法不麻烦,你看,一个BGR一个RGB,就是把RB的位置调换了而已,那再把它调回来不就得了么?问题是要怎么个调法? 例如:FF0033我们的思维很快,一秒钟就换过来了,RGB变成BGR前后两位互调,那就是3300FF换成代码思路也不麻烦:1、获取颜色值:FF00332、用字符处理函数分割获取到的颜色值:FF|00|33 分别赋值给变量 R、G、B3、将RGB三个字符变量合成,顺序为BGR那么生成代码就是这个样子:sColor = FF0033LenRGB = Len(sColor)R= Mid(sColor, 1, 2)G= Mid(sColor, 3, 2)B= Mid(sColor, 5, 2)MessageBox BGR: &B & G&R按键中还有个更方便的命令,不过这个命令,分出来的值是十进制的值: GetColor =FF0033 Call Plugin.Color.ColorToRGB(GetColor, R, G, B) Msgbox R: & R & vbcrlf & G: & G & vbcrlf & B: & BRGB分量之偏色 【大漠找字中的偏色】上面说到,把颜色分割成RGB三原色(分割颜色又称为分量),那么,分割颜色除了转换RGB,BGR还有其它的功用吗?答案是肯定的,应该有很多童鞋都使用过大漠工具,在大漠工具找字里,可以设置偏色。偏色是什么呢?就是设定一个颜色范围,当获取的颜色在这个范围内的时候都能找到。对偏色不熟悉的童鞋可以看下我们之前的院刊帖子,关于大漠找字偏色的帖子:/thread-543327-1-1.html偏色,听起来很深奥的样子,它其实就是由我们的RGB分量来实现的。偏色大致思路:1、设置颜色范围 例如:0000FF-FFFFFF2、 获取颜色值,并且使用ColorToRGB 命令把颜色值进行分量,赋值给变量R、G、B3、获取颜色范围0000FF,用colorToRGB命令将它分量,赋值给变量R1、G1、B14、获取颜色范围FFFFFF,用colorToRGB命令将它分量,赋值给变量R2、G2、B25、判断颜色值是否超过设定的范围参考代码如下:min = 0000FF max =FFFFFFGetColor=GetPixelColor(0, 0) /获取0,0点颜色Call Plugin.Color.ColorToRGB(GetColor, R, G, B) /将0,0点颜色分割Msgbox RGB值:& R&,& G&,&BCall Plugin.Color.ColorToRGB(min, R1, G1, B1)/将最小范围颜色 000000 分割Call Plugin.Color.ColorToRGB(max, R2, G2, B2)/将最大范围颜色 FFFFFF 分割S = S & R: & R1 & & R2 & vbcrlfS = S & G: & G1 & & G2 & vbcrlfS = S & B: & B1 & & B2 & vbcrlfMsgbox RGB分量区间(偏色范围):& vbcrlf & vbcrlf & SIf R= R1 and G= G1 and B=B1 Then/判断是否在000000-FFFFFF范围内 MessageBox 该点颜色值在& min & & max &范围内。Else MessageBox该点颜色值不在& min & & max &范围内。End IfRGB分量之彩色图片转黑白 那我们的RGB分类还有没有其他的功用呢? 答案是肯定的,例如,彩色照片转换成黑白照片,还有大漠工具里的二值化,这些都是通过RGB颜色分量来实现的。【那么,怎样才能让颜色二值化变成黑白两色呢?】首先,我们要先了解下一个阈值这个东西,它是基于图片亮度的一个黑白分界值,默认值是50%中性灰,既128,亮度高于128(50%的灰)的会变黑简单的理解:阈值就是颜色的分解线,利用这条分界线,我们就可以将彩色的图片转换为黑白的。【二值化转换思路】1、获取要转换为黑白颜色的图片区域2、取出区域里的每个像素点3、把这些像素点的颜色进行分量,如果RGB三原色的平均值大于128则把该像素点的颜色修改为白色,小于则修改为黑色 (也可以大于128的修改为黑色,小于的为白色)参考代码如下:Dim My(63,63) /定义二维数组 需要二值化的区域For x= 0 To 63 For y = 0 To 63 GetColor = GetPixelColor(x, y) /获取区域里每个像素点的颜色 If 二值化(GetColor) = 1 Then/调用二值化函数判断是当前颜色点是否大于128 My(x, y) = 000000 /小于则输出黑色 Else My(x,y) = FFFFFF /大于则输出白色 End If NextNextFunction 二值化(sColor) 二值化= 1 Plugin.Color.ColorToRGB sColor, R, G, B /将颜色值分量 If (R + G + B) / 3+1 = 128 Then 二值化 = 0 /如果RGB平均值大于128End Function/用屏幕输出命令打印出图像/For i = 63 To 0 step -1/为什么是倒着的顺序呢?因为这个符号所打印出来的图像会出现白色的间隙,倒着打印可以盖住这些间隙 For j = 63 To 0 step -1 Call Plugin.Msg.ShowScrTXT(i, j, i+10, j+10, ,My(i, j) ) /这个符号用来代表像素点,My(i, j) 这里面存放的颜色值决定像素点的颜色。 NextNext效果图:左边是原图,右边是二值化的。拓展:我们还可以修改这一段,当RGB平均值大于128时输出绿色If 二值化(GetColor) = 1 Then/调用二值化函数判断是当前颜色点是否大于128 My(x, y) = 6EB33A /小于则输出绿色 Else My(x,y) = FFFFFF /大于则输出白色 End If效果图:左边是原图,右边是二值化的。【有没有更简便的方法呢?】 有的,可以使用365插件里的Binarization二值化颜色命令来实现: 代码如下:Dim My(63,63) /定义二维数组 需要二值化的区域For x= 0 To 63 For y = 0 To 63 GetColor = GetPixelColor(x, y)/获取区域里每个像素点的颜色 二值化= Plugin.Plug365Ne
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年环境监测物联网在环境监测教育与培训中的应用报告
- 智能健身工作室连锁行业市场调研与消费者满意度研究报告
- 电商绿色物流企业绿色物流服务能力评价体系构建报告
- 2025年连锁药店扩张中的市场细分与差异化竞争研究报告
- 工业互联网平台网络隔离技术在智能穿戴设备的安全保障研究报告
- 金融科技行业2025年企业估值方法与投资机会分析报告
- 物流行业2025:自动驾驶卡车在物流运输中的智能安全报告
- 咨询工程师经典例题及参考答案详解【培优A卷】
- 自考专业(教育管理)试卷附完整答案详解(历年真题)
- 环保公司人力资源规划办法
- 《废旧锂电池的回收与再利用》课件
- 汽车制造工艺技术课件:汽车总装生产工艺流程及检测工艺
- 硬笔书法训练行业深度调研及发展战略咨询报告
- 2024年中国心力衰竭诊断与治疗指南更新要点解读
- JJF(新) 146-2024 可燃气体和有毒气体检测报警控制系统校准规范
- 《高血压的护理常规》课件
- 《更年期的中医调理》课件
- 《环形件模锻实验》课件
- DB37T 5059-2016 工程建设地下水控制技术规范
- 智慧安监大数据云平台建设方案
- 护士职业防护
评论
0/150
提交评论