1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務時間:8:30-17:00
      你可能遇到了下面的問題
      關閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      Go車牌識別(網(wǎng)絡圖片|本地圖片)-創(chuàng)新互聯(lián)

      Go  車牌識別 (網(wǎng)絡圖片| 本地圖片)

      我們提供的服務有:網(wǎng)站設計、網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、安丘ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的安丘網(wǎng)站制作公司

      先注冊一個百度云賬號,然后選擇 人工智能 文字識別,創(chuàng)建一個應用。獲取appkey secret 。

      網(wǎng)絡圖片

      package main
      
      import (
         "encoding/base64"
         "encoding/json"
         "io/ioutil"
         "log"
         "net/http"
         "net/url"
      )
      
      func main() {
         handler := PlateHandler{}
      
         appKey := "11111"
         secret := "11111111z"
         accessToken := handler.GetAccessToken(appKey, secret)
         log.Println("獲取到的accessToken:",accessToken)
      
         pictureUrl := "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=2181674788,2215933125&fm=26&gp=0.jpg"
         plate,err:=handler.GetPlate(pictureUrl,accessToken)
         if err!=nil{
            log.Fatal("獲取車牌失敗",err)
         }
         log.Println("獲取到的車牌:",plate)
      }
      
      type accessTokenInfo struct {
         AccessToken string `json:"access_token"`
         ExpiresIn   int64  `json:"expires_in""`
      }
      
      type WordResult struct {
         Number string `json:"number"`
      }
      type Data struct {
         WordsResult WordResult `json:"words_result"`
      }
      type PlateHandler struct {
      }
      
      func (handler *PlateHandler) GetAccessToken(appKey string, appSecret string) (accessToken string) {
         url := "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id="+appKey+"&client_secret="+appSecret
      
         response, err := http.Get(url)
         if err != nil {
            log.Fatal(err)
            return ""
         }
         data, err := ioutil.ReadAll(response.Body)
         if err != nil {
            log.Fatal(err)
            return ""
         }
         info := accessTokenInfo{}
         json.Unmarshal(data, &info)
         log.Print("請求accessToken返回的數(shù)據(jù):", string(data))
         return info.AccessToken
      }
      
      func (handler *PlateHandler) GetPlate(picture_url string,accessToken string) (plate string, err error) {
         rsp, err := http.Get(picture_url)
         if err != nil {
            log.Fatal(err)
            return "", err
         }
         image, _ := ioutil.ReadAll(rsp.Body)
         image_value, err2 := url.Parse(base64.StdEncoding.EncodeToString(image))
         if err2 != nil {
            log.Fatal(err)
            return "", err
         }
         to_url := "https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate?access_token="+accessToken
         values := url.Values{}
         values.Add("image", image_value.EscapedPath())
         values.Add("multi_detect", "false")
         rsp2, err := http.PostForm(to_url, values)
         defer rsp2.Body.Close()
         if err != nil {
            log.Fatal(err)
            return "", err
         }
         data, err := ioutil.ReadAll(rsp2.Body)
         if err != nil {
            log.Fatal(err)
      
            return "", err
         }
         log.Println("請求車牌返回的數(shù)據(jù):",string(data))
         m := Data{}
         err = json.Unmarshal(data, &m)
         if err != nil {
            log.Fatal(err)
            return "", err
         }
         log.Println(m)
         return m.WordsResult.Number, nil
      }

      本地圖片

      package main
      
      import (
         "encoding/base64"
         "encoding/json"
         "io/ioutil"
         "log"
         "net/http"
         "net/url"
         "os"
      )
      
      func main() {
         handler := PlateHandler{}
      
         appKey := "111111111"
         secret := "111111111"
         accessToken := handler.GetAccessToken(appKey, secret)
         log.Println("獲取到的accessToken:",accessToken)
      
         pictureUrl := "day02/img/1.png"    // 路徑,從根開始寫
         plate,err:=handler.GetPlate(pictureUrl,accessToken)
         if err!=nil{
            log.Fatal("獲取車牌失敗",err)
         }
         log.Println("獲取到的車牌:",plate)
      }
      
      type accessTokenInfo struct {
         AccessToken string `json:"access_token"`
         ExpiresIn   int64  `json:"expires_in""`
      }
      
      type WordResult struct {
         Number string `json:"number"`
      }
      type Data struct {
         WordsResult WordResult `json:"words_result"`
      }
      type PlateHandler struct {
      }
      
      func (handler *PlateHandler) GetAccessToken(appKey string, appSecret string) (accessToken string) {
         url := "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id="+appKey+"&client_secret="+appSecret
      
         response, err := http.Get(url)
         if err != nil {
            log.Fatal(err)
            return ""
         }
         data, err := ioutil.ReadAll(response.Body)
         if err != nil {
            log.Fatal(err)
            return ""
         }
         info := accessTokenInfo{}
         json.Unmarshal(data, &info)
         log.Print("請求accessToken返回的數(shù)據(jù):", string(data))
         return info.AccessToken
      }
      
      func (handler *PlateHandler) GetPlate(picture_url string,accessToken string) (plate string, err error) {
      
         ff, _ := os.Open(picture_url)
         sourcebuffer := make([]byte, 50000000000)
         n, _ := ff.Read(sourcebuffer)
         //base64壓縮
         sourcestring := base64.StdEncoding.EncodeToString(sourcebuffer[:n])
      
         to_url := "https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate?access_token="+accessToken
      
         values := url.Values{}
         values.Add("image", sourcestring)
         values.Add("multi_detect", "false")
         rsp2, err := http.PostForm(to_url, values)
         defer rsp2.Body.Close()
         if err != nil {
            log.Fatal(err)
            return "", err
         }
         data, err := ioutil.ReadAll(rsp2.Body)
         if err != nil {
            log.Fatal(err)
      
            return "", err
         }
         log.Println("請求車牌返回的數(shù)據(jù):",string(data))
         m := Data{}
         err = json.Unmarshal(data, &m)
         if err != nil {
            log.Fatal(err)
            return "", err
         }
         log.Println(m)
         return m.WordsResult.Number, nil
      }

      結(jié)果

      2019/12/25 11:48:34 請求車牌返回的數(shù)據(jù): {"log_id": 8926648569804002425, "words_result": {"color": "blue", "number": "豫A99999", "probability": [0.9014493227005005, 0.9014158248901367, 0.900929868221283, 0.9012478590011597, 0.901341438293457, 0.9010871052742004, 0.9010393619537354], "vertexes_location": [{"y": 181, "x": 241}, {"y": 173, "x": 439}, {"y": 229, "x": 442}, {"y": 236, "x": 244}]}}
      2019/12/25 11:48:34 {{豫A99999}}
      2019/12/25 11:48:34 獲取到的車牌: 豫A99999

      另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


      文章題目:Go車牌識別(網(wǎng)絡圖片|本地圖片)-創(chuàng)新互聯(lián)
      轉(zhuǎn)載來于:http://www.ef60e0e.cn/article/disdpc.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        禹州市| 南城县| 理塘县| 突泉县| 木兰县| 托克托县| 谢通门县| 阆中市| 阳东县| 阜阳市| 吉水县| 浦东新区| 三明市| 介休市| 库尔勒市| 墨玉县| 会理县| 夏邑县| 唐河县| 行唐县| 淳安县| 和硕县| 北海市| 无锡市| 文昌市| 富蕴县| 象州县| 黄骅市| 沾益县| 疏勒县| 曲松县| 莎车县| 旺苍县| 凤凰县| 苍山县| 林芝县| 昔阳县| 额济纳旗| 积石山| 潜江市| 德州市|