| 
                                        
                                     
                                        
                                        版主23805412237517 朵2050 个1211 个1385002004-08-11 | 
                                        
                                            
                                                
                                                1#
                                                
                                            
                                        
                                        
                                            
                                                
                                                
                                                t
                                                T
                                            发表于 2016-04-16 11:22
                                            
                                                                                        
                                            | 
                                            
                                            
                                            |只看楼主 
                    
                    
                    
                   
                    
                        
                        
                        【图灵识别系列】颜色知识『Fish ISR虹鱼图灵识别』- 免费识别插件下载【图灵识别系列】识别基础-识别有史以来最简单的验证码http://bbs.anjian.com/showtopic-606271-1.aspx 【图灵识别系列】图片知识-根据图片进行识别http://bbs.anjian.com/showtopic-621909-1.aspx 【学习咨询:加群314452472/866837563】根据颜色进行识别 1、颜色基础知识您所在的用户组无法下载或查看附件
     阳光赋予我们的世界有七种颜色,他们分别是,红橙黄绿青蓝紫,使用三棱透镜进行折射就能看到七色彩虹。 您所在的用户组无法下载或查看附件
     光从物体反 射到人的眼睛所引起的一种视觉心理感受。色彩按字面含义上理解可分为色和彩,所谓色是指人对进入眼睛的光并传至大脑时所产生的感觉;彩则指多色的意思,是人对光变化的理解。     自然界的色彩是十分复杂的。我们必须学会用种类有限的颜料调成丰富多样的色彩,为此,我们要了解颜料混合的规律。     绘画色彩中最基本的颜色为三种即红、黄、蓝,称之为原 色。这三种原 色颜色纯 正、鲜明、强烈,而且这三种原色本身是调不出的,但是它们可以调 配出多种色相的色彩。 1.1、颜色格式您所在的用户组无法下载或查看附件
     颜色值的格式有很多种,常见的有RGB,HSL,CMYK等。本文中主要用到RGB和HSL格式的颜色值。什么是RGB? RGB颜色空间模型:     RGB颜色空间采用物理三基色表示:红、绿、蓝。     任何一个颜色都是有三基 色混合而成的。但是,人的视觉不适应这种颜色体制。 您所在的用户组无法下载或查看附件
 什么是HSL?您所在的用户组无法下载或查看附件
 HSL颜色空间模型:     人的肉 眼看颜色,不可能像机器一样,分析出颜色里含 有多少比重的 红、绿、蓝     肉 眼看颜色,是通过由色 相(Hue,简H),饱和度(Saturation,简S)和色明度(Value,简L)来识别我们看到的是什么颜色。     HSL就是用色 相,饱和度和色明度来形容颜色,所以它适合人的视觉。这个色彩缤纷的圆锥形就是HSL的色彩空间。 1.2、颜 色类 型转 换您所在的用户组无法下载或查看附件
     什么情 况下需要颜 色转 换?有时 候会出现 颜 色随 着时间的变化而变 亮或者变 暗,一般 配 套的方法在这 种情况下查找颜 色就会找不到,那怎么办呢? 我们可以利用颜色的----色相值     来判断。什么 是 色 相?     比如 红 色,它在白 天 时是 红 色,到了晚 上 时还是一样 是 红 色,它不会因为白天变 亮或者晚 上变 暗而改变 本 色的。(如下图) 【RGB转HSL】您所在的用户组无法下载或查看附件
 按键脚本: 2、根据颜色进行识别复制代码//色调(H)、饱 和度(S)、亮度(L)
//下面这句是把16进制颜色("0000FF")转换分解到10进制(H:H, S:S, L:L)分量中
Call Plugin.Color.ColorToHSL("0000FF", H, S, L)
MsgBox H & "  " & S & "  " & L
    你有没有这样的怀疑过,取色判断跟图像识别应该没有任何关系吧?     其实,大家在日常生活中都是有体 验过的,对吧?没有吗? 您所在的用户组无法下载或查看附件
     平常生活中最常见的就是“红绿灯”啦(如上图),看到红 灯就会停车,对吧?你们看到的这些根据人眼判断的就是一种识别,只是你们没有意识到而已,是不是?这个就是根据一种颜色来判断,一种最简单的识别方法。 下面举个例子:| 但也有的时候我们无法单纯的只靠一种颜色来识别,因为这样会很容易识别错误,比如:红色的就一定是红 灯吗?此时就需要大范围内的多种颜色一起进行判断。
 那么我们可以说,颜色判断就是一种最最基础的图像识别方法。
 
 | 
 如何利用颜色找到电脑桌面上的“我的电脑”图标?(如下图) 您所在的用户组无法下载或查看附件
 首先,打开鱼鱼抓色工具,勾选或按热键【Alt+~】启动取色功能(如下图), 您所在的用户组无法下载或查看附件
 然后把鼠标移动到“我的电脑”图标的淡绿 色点上(任意颜 色点都可以)(如下图), 您所在的用户组无法下载或查看附件
 最后按下热键【Alt+~】停止取色(如下图)。 您所在的用户组无法下载或查看附件
 这样,就完成了“我的电脑”图标颜色的获取(如下图)。 您所在的用户组无法下载或查看附件
 下面,我们来使用16进制的“6CF999”这个颜 色在屏幕(0, 0, 1024, 768)区域内进行查找:【按键精灵脚本】: 新建一个脚本,切换到源文件视图,脚本如下: 【VB代码】:复制代码Dim FoundX, FoundY
FindColor 0, 0, 1024, 768, "6CF999", FoundX, FoundY
If FoundX > 0 And intY > 0 Then 
    MessageBox "找到了“我的电脑”图标"
End If
新建一个标准EXE工程,放一个按钮控件名称为“找色”,代码如下: 封装函数:复制代码Private Sub 找色_Click()
Dim FoundX As Long, FoundY As Long
    Call 屏幕区域找色(0, 0, 1024, 768, "6CF999", 0, 0.9, FoundX, FoundY)
    MsgBox "找到了“我的电脑”图标"
End Sub
注意:这里调用到的“获取屏幕像素()”函数,将在后面篇章中还会介绍。复制代码Public Sub 屏幕区域找色(左 As Long, 上 As Long, 右 As Long, 下 As Long, 颜色值 As String, 查找方向 As Integer, 相似度 As Single, FoundX As Long, FoundY As Long)
Dim ColVal() As Byte, bi24BitInfo As BitMapInfo
Dim InPutHei As Long, InPutWid As Long
Dim iBitmap As Long, IdSource As Long
Dim i As Long, i2 As Long, i3 As Long
Dim w As Long, wwww As Integer, H As Long, hhhh As Integer
Dim 三维图像数组() As Byte
    FoundX = -1
    FoundY = -1
    On Error GoTo ErrLine
    '1.截取屏幕图片信息
    Call 获取屏幕像素(左, 上, 右, 下, 三维图像数组)
    '2.查找判断
    Dim Similar As Long
    Similar = 50 - (50 * 相似度)    '相似度计算
    Dim Bbx As Long, Bby As Long, 宽 As Long, 高 As Long
    宽 = 右 - 左 - 1
    高 = 下 - 上 - 1
    If 查找方向 = 0 Then    '从左到右.从上到下  顺序
        For Bby = 0 To 高
            For Bbx = 0 To 宽
                If 相似度判断(三维图像数组(0, Bbx, Bby), 三维图像数组(1, Bbx, Bby), 三维图像数组(2, Bbx, Bby), 颜色值, Similar) = True Then
                    FoundX = Bbx + 左
                    FoundY = Bby + 上
                    GoTo ErrLine
                End If
            Next
        Next
    ElseIf 查找方向 = 1 Then    '从左到右.从下到上  顺序
        For Bby = 高 To 0 Step -1
            For Bbx = 0 To 宽
                If 相似度判断(三维图像数组(Bbx, Bby), 三维图像数组(1, Bbx, Bby), 三维图像数组(2, Bbx, Bby), 颜色值, Similar) = True Then
                    FoundX = Bbx + 左
                    FoundY = Bby + 上
                    GoTo ErrLine
                End If
            Next
        Next
    ElseIf 查找方向 = 2 Then    '从右到左  从上到下.顺序
        For Bby = 0 To 高
            For Bbx = 宽 To 0 Step -1
                If 相似度判断(三维图像数组(Bbx, Bby), 三维图像数组(1, Bbx, Bby), 三维图像数组(2, Bbx, Bby), 颜色值, Similar) = True Then
                    FoundX = Bbx + 左
                    FoundY = Bby + 上
                    GoTo ErrLine
                End If
            Next
        Next
    ElseIf 查找方向 = 3 Then    '从右到左  从下到上.顺序
        For Bby = 高 To 0 Step -1
            For Bbx = 宽 To 0 Step -1
                If 相似度判断(三维图像数组(Bbx, Bby), 三维图像数组(1, Bbx, Bby), 三维图像数组(2, Bbx, Bby), 颜色值, Similar) = True Then
                    FoundX = Bbx + 左
                    FoundY = Bby + 上
                    GoTo ErrLine
                End If
            Next
        Next
    ElseIf 查找方向 = 4 Then    '从上到下  从左到右.顺序
        For Bbx = 0 To 宽
            For Bby = 0 To 高
                If 相似度判断(三维图像数组(Bbx, Bby), 三维图像数组(1, Bbx, Bby), 三维图像数组(2, Bbx, Bby), 颜色值, Similar) = True Then
                    FoundX = Bbx + 左
                    FoundY = Bby + 上
                    GoTo ErrLine
                End If
            Next
        Next
    ElseIf 查找方向 = 5 Then    '从上到下  从右到左.顺序
        For Bbx = 宽 To 0 Step -1
            For Bby = 0 To 高
                If 相似度判断(三维图像数组(Bbx, Bby), 三维图像数组(1, Bbx, Bby), 三维图像数组(2, Bbx, Bby), 颜色值, Similar) = True Then
                    FoundX = Bbx + 左
                    FoundY = Bby + 上
                    GoTo ErrLine
                End If
            Next
        Next
    ElseIf 查找方向 = 6 Then    '从下到上  从左到右.顺序
        For Bbx = 0 To 宽
            For Bby = 高 To 0 Step -1
                If 相似度判断(三维图像数组(Bbx, Bby), 三维图像数组(1, Bbx, Bby), 三维图像数组(2, Bbx, Bby), 颜色值, Similar) = True Then
                    FoundX = Bbx + 左
                    FoundY = Bby + 上
                    GoTo ErrLine
                End If
            Next
        Next
    ElseIf 查找方向 = 7 Then    '从下到上  从右到左.顺序
        For Bbx = 宽 To 0 Step -1
            For Bby = 高 To 0 Step -1
                If 相似度判断(三维图像数组(Bbx, Bby), 三维图像数组(1, Bbx, Bby), 三维图像数组(2, Bbx, Bby), 颜色值, Similar) = True Then
                    FoundX = Bbx + 左
                    FoundY = Bby + 上
                    GoTo ErrLine
                End If
            Next
        Next
    End If
ErrLine:
    Erase 三维图像数组    '释放内存
End Sub
【图灵识别系列】识别基础-识别有史以来最简单的验证码http://bbs.anjian.com/showtopic-606271-1.aspx 【图灵识别系列】图片知识-根据图片进行识别http://bbs.anjian.com/showtopic-621909-1.aspx 
	
	投票:【图灵识别系列】颜色知识-根据颜色进行识别
	
	- 截止时间:2016-05-31
	
	
	
	
		
		| 1. 好评 |  
		
		|  | 4票 / 100.00% |  
		
		| 2. 差评 |  
		
		|  | 0票 / 0.00% |  
		| 抱歉,您所在的用户组没有参与投票的权限,请注册或登录! |  |