久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4470|回復: 0
打印 上一主題 下一主題
收起左側

按鍵精靈自定義公用函數

[復制鏈接]
跳轉到指定樓層
樓主
ID:26188 發表于 2015-2-18 01:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
[General]
MacroID=56ea1fce-b961-4037-8ec0-751af08ee19b
SyntaxVersion=1
Description=公用函數
[Script]
//請在下面寫上您的子程序或函數
//寫完保存后,在任一命令庫上點擊右鍵并選擇“刷新”即可
Function RGB轉Y(顏色字符串)
Dim R : dim G : dim B
R=clng("&h"&mid(顏色字符串,1,2))
G=clng("&h"&mid(顏色字符串,3,2))
B=clng("&h"&mid(顏色字符串,5,2))
RGB轉Y = 0.29 * R + 0.6 * G + 0.11 * B
End function
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Function 找重復最多的值(數組字符串)
Dim 主數組 : Dim 主數組下標 : Dim 累加記數
Dim 重復數組字串 : Dim 重復數組 : Dim 重復數組下標 : Dim 重復標記 : Dim 重復數 : Dim 重復次數
Dim i : Dim j : Dim k
主數組=split(數組字符串,"|")
主數組下標=(ubound(主數組))-1
重復數=0
重復次數 =0
For i= 0 to 主數組下標-1
    累加記數=0
    重復數組=split(重復數組字串,"|")
    重復數組下標=(ubound(重復數組))-1
    For k= 0 to 重復數組下標
        if 主數組(i)=重復數組(k) then
            重復標記=1
        Else
            重復標記=0
        end if
    Next
    If 重復標記=0 then
        For j = i+1 to 主數組下標
            If 主數組(i)=主數組(j) then
                累加記數=累加記數+1
            End if
        Next
        If 累加記數>0 then
            重復數組字串=重復數組字串&cstr(主數組(i))&"|"
            If 累加記數>重復次數 then
                重復數 = 主數組(i)
                重復次數 = 累加記數
            end if
        end if
    end if
Next
找重復最多的值 =重復數
end function
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function 找多個相同圖形(被找圖像寬,被找圖像高,x起點,y起點,x終點,y終點,被找起點顏色,被找顏色偏移)
//下文是用來在限定四邊形范圍內查找多個無跌加狀態正四邊形圖形的算法流程
Dim 相似度變量 : dim 相似度終值 : dim x起點變量 : dim y起點變量 : dim y終點變量
Dim temp0 : dim temp1 : dim x : dim y
相似度變量=.9 : 相似度終值 =.4 : x起點變量 = x起點 : y起點變量 = y起點 : y終點變量 = y終點 : 找多個相同圖形 = ""
While 相似度變量 > 相似度終值
    temp0=Plugin.Color.FindMutiColor(x起點變量,y起點變量,x終點, y終點變量,被找起點顏色,被找顏色偏移,相似度變量)
    temp1 = split(temp0,"|") : x = Clng(temp1(0)) : y = Clng(temp1(1))
    If x > 0 and y > 0 then
        x起點變量 = x + 被找圖像寬 : y起點變量 = y :  y終點變量 = y + 被找圖像高 : 找多個相同圖形 = 找多個相同圖形&x&","&y&"|"
        While x起點變量 < x終點 - 被找圖像寬 + 1 and y起點變量 < y終點 - 被找圖像高 + 1
            temp0=Plugin.Color.FindMutiColor(x起點變量,y起點變量,x終點, y終點變量,被找起點顏色,被找顏色偏移,相似度變量)
            temp1 = split(temp0,"|") : x=Clng(temp1(0)) : y=Clng(temp1(1))
            If x > 0 and y > 0 then
                x起點變量 = x + 被找圖像寬 : y起點變量 = y :  y終點變量= y + 被找圖像高 : 找多個相同圖形 = 找多個相同圖形&x&","&y&"|"
            Else
                If x起點變量 <> x起點
                    x起點變量 = x起點 : y起點變量 = y起點變量 + 1 : y終點變量 = y終點
                Else
                    x起點變量 = x起點 - 被找圖像寬 : y起點變量 = y終點 - 被找圖像高
                end if
            end if  
        wend
        相似度變量 = 相似度終值
    Else
        相似度變量 = 相似度變量 - .1
    end if
Wend
End function
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Function 區域內找顏色突出的值(x軸起點,y軸起點,x軸終點,y軸終點)
Dim 背景色 : Dim 紅值 : Dim 藍值 : Dim 黃值 : Dim 背景亮度
Dim 采樣色 : Dim 采樣大小: Dim 采樣亮度 : Dim 域值測試 : Dim 域值 : Dim 顏色數組集
Dim i : Dim x : Dim y : Dim 步進
背景色 = array("","","","") : 紅值 = 0 : 藍值 = 0 : 黃值 = 0
采樣大小 = 32 : 域值 = 33
//取四個角的色值,作為判斷排除的依據
背景色(0)=GetPixelColor(x軸起點,y軸起點) : 背景色(1)=GetPixelColor(x軸終點,y軸起點)
背景色(2)=GetPixelColor(x軸起點,y軸終點) : 背景色(3)=GetPixelColor(x軸終點,y軸終點)
For i = 0 TO 3
   紅值 = 紅值 + clng("&H"&(mid(背景色(i),1,2)))
   藍值 = 藍值 + clng("&H"&(mid(背景色(i),3,2)))
   黃值 = 黃值 + clng("&H"&(mid(背景色(i),5,2)))   
Next
紅值 = 紅值\4 : 藍值 = 藍值\4 : 黃值 = 黃值\4
背景亮度 = (0.29 * 紅值 + 0.6 * 藍值 + 0.11 * 黃值)\1
//采樣
If (x軸終點-x軸起點) > (y軸終點-y軸起點) then
    步進 = (x軸終點-x軸起點)\32
Else
    步進 = (y軸終點-y軸起點)\32
end if
For y = y軸起點 to y軸終點 step 步進
    For x = x軸起點 to x軸終點 step 步進
        采樣色=GetPixelColor(x,y)
        采樣亮度 = lib.公用函數.RGB轉Y(Cstr(采樣色))
        域值測試 = (((abs(采樣亮度-背景亮度))/255)*100)\1
        If 域值測試>域值 then
            顏色數組集 = 顏色數組集&cstr(采樣色)&"|"
        end if
    Next
Next
區域內找顏色突出的值 = 顏色數組集
End function
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Function 查找包絡(x軸起點,y軸起點,x軸終點,y軸終點,顏色)
//2010/05/06 tankli88 zt_script,sub 包絡范圍 
//在勻色背景中,查找顏色突出區域的包絡范圍
//調用插件從左向右,從上向下查找,查找相似度域值,得到包絡范圍的最小Y坐標.第一次查找,x起點變量為包絡范圍的最小X坐標,第二次x起點變量為包絡范圍的最大X坐標,第三次y起點變量為包絡范圍的最大Y坐標
//查找方式,二分收斂
dim 判斷條件 : dim 相似度變量 : dim x :dim y : dim x變量
Dim x起點變量 : dim x終點變量 : dim y起點變量 : dim y終點變量
Dim x起點常量 : dim x終點常量 : dim y起點常量 : dim y終點常量
判斷條件 = 1 : 相似度變量 = .9
While 判斷條件 <> 0
    FindColorEx x軸起點,y軸起點,x軸終點,y軸終點,顏色,0,相似度變量,x,y
    If x > 0 and y > 0
        判斷條件 = 0
        ///////////////
        x變量 = x : y起點常量 = y : x起點變量 = x軸起點 : x終點變量 = x起點變量 + (x - x起點變量)\2 :
        While (x變量-x起點變量) > 1
            FindColorEx x起點變量,y起點常量,x終點變量,y軸終點,顏色,0,相似度變量,x,y
            If x > 0 and y > 0
                x變量 = x : x終點變量 = x起點變量 + (x - x起點變量)\2
            Else
                x起點變量 = x終點變量 : x終點變量 = x起點變量 + (x變量 - x起點變量)\2
            End If
        wend
        ///////////////
        x起點常量 = x起點變量 + 1 :  x終點變量 = x軸終點 : x起點變量 = x起點常量 + (x終點變量 - x起點常量)\2
        While (x終點變量-x起點變量) > 1
            FindColorEx x起點變量,y起點常量,x終點變量,y軸終點,顏色,0,相似度變量,x,y
            If x > 0 and y > 0
                x起點變量 = x + (x終點變量 - x)\2
            Else
                x終點變量 = x起點變量 : x起點變量 = x終點變量 - (x終點變量 - x起點常量)\2
            End If
        wend
        ///////////////
        x終點常量 = x起點變量 + 1 : y終點變量 = y軸終點 : y起點變量 = y起點常量 + (y終點變量 - y起點常量)\2
        While (y終點變量-y起點變量) > 1
            FindColorEx x起點常量,y起點變量,x終點常量,y終點變量,顏色,0,相似度變量,x,y
            If x > 0 and y > 0
                y起點變量 = y + (y終點變量 - y)\2
            Else
                y終點變量 = y起點變量 : y起點變量 = y終點變量 - (y終點變量 - y起點常量)\2
            End If
        wend
        y終點常量 = y起點變量 + 1
    else
        相似度變量 = 相似度變量 - .1
    End if
wend
查找包絡 = cstr(x起點常量)&"|"&cstr(y起點常量)&"|"&cstr(x終點常量)&"|"&cstr(y終點常量)
End Function
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Function 自動查找包絡(x軸起點,y軸起點,x軸終點,y軸終點)
Dim 顏色數組字符串: dim 顏色
顏色數組字符串 = lib.公用函數.區域內找顏色突出的值(x軸起點,y軸起點,x軸終點,y軸終點)
顏色 = lib.公用函數.找重復最多的值(顏色數組字符串)
自動查找包絡 = lib.公用函數.查找包絡(x軸起點,y軸起點,x軸終點,y軸終點,顏色)
End function

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品在线观看视频 | 成人中文字幕在线观看 | 国产7777 | 精品国产伦一区二区三区 | 亚洲 欧美 综合 | 三级福利视频 | 天堂综合网 | 天天插天天干 | 国产视频在线观看视频 | 一级国产片 | 亚洲日本视频 | 久久天天干 | 一本一道久久a久久精品蜜桃 | 国产精品视频免费看 | 四虎影视大全 | 黄色片毛片 | 久久久综合网 | 天堂网亚洲 | 黄色片免费在线观看 | 久久久网站 | 在线色 | 亚洲久久久 | 国产精品网站在线观看 | 国产免费自拍视频 | 亚洲午夜激情 | 香蕉网在线 | 国产精品成人免费视频 | 日韩在线观看av | 久久亚洲国产精品 | 国产精品一品二区三区的使用体验 | 久久黄色大片 | 国产小视频网站 | 国产成人精品一区二区三区视频 | 色羞羞 | 成年免费视频黄网站在线观看 | 国产日产精品一区二区三区的介绍 | 成人做爰免费视频免费看 | 亚洲午夜av | 国产一级片免费观看 | 在线播放日韩 | 国产精品成人一区 |