老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

如何利用golang進行OpenCV學習和開發-創新互聯

創新互聯公司于2013年創立,是專業互聯網技術服務公司,擁有項目成都網站設計、成都網站制作網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元麻章做網站,已為上家服務,為麻章各地企業和個人服務,聯系電話:18980820575

小編給大家分享一下如何利用golang進行OpenCV學習和開發,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

前言

記得開始使用 OpenCV 的時候是在大學時期,當時用的是 C 語言,OpenCV 版本好像是1.1,隨著時間的推移,后面 C++逐漸代替了 C,iOS 也有整合好的 lib 可以使用 OpenCV,現在Python, go 等語言進行開發,今天主要是說一說如何使用 go 語言配置開發 OpenCV。

OpenCV這一名稱包含了Open和 Computer Vision兩者的意思。實際上,Open指Open Source(開源,即開放源代碼),Computer Vision則指計算機視覺。OpenCV的發展對軟件的開發具有重要影響。

OpenCV作為開放的數字圖像處理和計算機視覺軟件平臺,有以下特點:

① 開放C源碼。

② 基于Intel處理器指令集開發的優化代碼。

③ 統一的結構和功能定義。

④ 強大的圖像和矩陣運算能力。

⑤ 方便靈活的用戶接口。

⑥ 同時支持MSWindows和Linux平臺。

作為一個基本的計算機視覺、圖像處理和模式識別的開源項目,OpenCV可以直接應用于很多領域,作為二次開發的理想工具。

庫的選擇

使用 Opencv 2+的話,可以用這個庫 https://github.com/go-opencv/go-opencv,但這個庫沒有支持 OpenCV 3+, 所以想用 OpenCV 3+ 可以使用https://github.com/hybridgroup/gocv,今天主要就是介紹 gocv 的使用。

環境配置

如果還沒安裝 OpenCV 的話, Mac OS可以通過 brew install opencv 進行安裝OpenCV 3.4.1。

安裝好 go 之后,直接運行 go get -u -d gocv.io/x/gocv 命令獲取 gocv 庫,進入該庫根目錄 cd $GOPATH/src/gocv.io/x/gocv, 運行 source ./env.sh,然后就可以使用 go run命令運行里面的示例了,剛開始學可以直接在示例里面修改代碼運行。

IDE 的選擇

本來想使用 IDEA + go plugin 的方式來開發,誰知 IDEA 出了 go IDE(需要收費),go plugin 就停止維護了,只能放棄,隨后選擇 vscode+plugin 的方式,方便快捷,感覺也不錯,智能提示和代碼跳轉都有了,調試還沒試,估計調試和 run 的話都是可以配置的。

示例

配置好之后迫不及待就寫代碼了,由于 gocv 對 OpenCV 進行了封裝,方法名基本都一致,但是使用上還是有些區別,不過 vscode 代碼跳轉很方便,不清楚直接跳到源碼看看就知道了,下面貼一個查找邊框的例子,看看是不是和 C++的寫法很不一樣。

// What it does:
//
// This example uses the Window class to open an image file, and then display
// the image in a Window class.
//
// How to run:
//
// go run ./cmd/showimage/main.go /home/ron/Pictures/mcp23017.jpg
//
// +build example

package main

import (
 "fmt"
 "image"
 "image/color"
 "os"

 "gocv.io/x/gocv"
)

func main() {
 if len(os.Args) < 2 {
 fmt.Println("How to run:\n\tshowimage [imgfile]")
 return
 }

 filename := os.Args[1]
 window := gocv.NewWindow("Hello")
 img := gocv.IMRead(filename, gocv.IMReadColor)
 grayImage := gocv.NewMat()
 defer grayImage.Close()

 gocv.CvtColor(img, &grayImage, gocv.ColorBGRToGray)
 destImage := gocv.NewMat()
 gocv.Threshold(grayImage, &destImage, 100, 255, gocv.ThresholdBinaryInv)
 resultImage := gocv.NewMatWithSize(500, 400, gocv.MatTypeCV8U)

 gocv.Resize(destImage, &resultImage, image.Pt(resultImage.Rows(), resultImage.Cols()), 0, 0, gocv.InterpolationCubic)
 gocv.Dilate(resultImage, &resultImage, gocv.NewMat())
 gocv.GaussianBlur(resultImage, &resultImage, image.Pt(5, 5), 0, 0, gocv.BorderWrap)
 results := gocv.FindContours(resultImage, gocv.RetrievalTree, gocv.ChainApproxSimple)
 imageForShowing := gocv.NewMatWithSize(resultImage.Rows(), resultImage.Cols(), gocv.MatChannels4)
 for index, element := range results {
 fmt.Println(index)
 gocv.DrawContours(&imageForShowing, results, index, color.RGBA{R: 0, G: 0, B: 255, A: 255}, 1)
 gocv.Rectangle(&imageForShowing,
 gocv.BoundingRect(element),
 color.RGBA{R: 0, G: 255, B: 0, A: 100}, 1)
 }

 if img.Empty() {
 fmt.Println("Error reading image from: %v", filename)
 return
 }

 for {
 window.IMShow(imageForShowing)
 if window.WaitKey(1) >= 0 {
 break
 }
 }
}

我是用 showimage.go 這個示例改的,處理順序是:

  • 灰度化 CvtColor

  • 二值化 Threshold

  • 縮小圖片 Resize

  • 膨脹 Dilate

  • 高斯模糊 GaussianBlur

  • 查找輪廓 FindContours

  • 繪制輪廓 DrawContours

  • 繪制輪廓的最小外接矩形 Rectangle

從上面例子可以看到,方法都是在 package gocv下,使用的時候會有代碼提示,包括參數也有提示,由于 go 沒有類構造方法,都是使用 New+類型名稱這樣的函數還創建類型。

我也是 go 的新手,這里是邊看著文檔邊寫的代碼,還好有智能代碼提示,用起來還算得心應手,希望這篇入門文章對想使用 go 來進行 OpenCV 開發的同學有所幫助。

以上是“如何利用golang進行OpenCV學習和開發”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯成都網站設計公司行業資訊頻道!

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


本文題目:如何利用golang進行OpenCV學習和開發-創新互聯
URL網址:http://www.xueling.net.cn/article/cdcgcc.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 四虎av永久免费观看 | 一级做a爱片 | 中文字幕在线亚洲三区 | 欧美亚成人| 久操线在视频在线观看 | 91精品国产综合久久小仙女图片 | 黄色成人在线免费观看 | 狠狠躁夜夜躁人人爽天天天天97 | 美女视频黄频a美女大全 | 久热中文字幕在线精品观 | 别插我b嗯啊视频免费 | 免费人妻无码不卡中文字幕系列 | 91精品久久久久久久久久 | 综合色久| 黑人中文字幕一区二区三区 | 狠狠色婷婷久久一区二区不卡 | 97av色| 男人天堂2023 | 山村少妇肉系列1一7 | 中国一级大毛片 | 三级做A全过程在线观看 | 4438全国成人免费 | 97色女| AV潮喷大喷水系列无码 | 国产免费又色又爽又黄软件 | 亚洲精品久日韩 | 日韩一级黄色大片 | 久久精品国产一区二区三 | 国产乱子伦精品无码专区 | 99国产精品免费观看视频re | 91嫩草私人成人亚洲影院 | 无码一区免费在线不卡 | 国产天美传媒性色AV | 国产伦精品一区二区三区88av | 国产视频污 | 999久久久无码国产精品 | 久久九九全国免费精品观看 | 亚洲成色WWW成人网站妖精 | 亚洲国产精品成人精品无码区 | 日本久久久久久久久 | av不卡免费在线 |