国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用 Go (Golang) 使用 OpenCV 繪制對象 GoCV

這篇具有很好參考價值的文章主要介紹了使用 Go (Golang) 使用 OpenCV 繪制對象 GoCV。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本文將向你展示如何使用 OpenCV 使用 Go 編程語言 (Golang) 和 GoCV 包繪制直線、正方形、圓形和橢圓形對象。

OpenCV是一個主要用于實時計算機視覺的編程函數(shù)庫。最初由 Intel 開發(fā),然后由 Willow Garage 和 Itseez 提供支持。這個庫是跨平臺的,可以在開源 Apache 2 許可下免費使用。

除了繪制物體,OpenCV還可以用于人臉檢測、運動跟蹤等。

GoCV 是Golang語言的一個包,支持 Linux、macOS 和 Windows 上最新版本的 Go 和 OpenCV v4.5.4。GoCV 使 Go 語言成為兼容 OpenCV 生態(tài)系統(tǒng)最新發(fā)展的“一流”客戶端。

GoCV 讓 golang 程序員可以訪問 OpenCV4 計算機視覺庫。

要求

  1. 安裝 Golang(確保目標操作系統(tǒng)與你的計算機匹配)

  2. 安裝 OpenCV

安裝 OpenCV

有關安裝 OpenCV 的指南,你可以打開 GoCV 網(wǎng)站上的文檔,網(wǎng)址為:https://gocv.io/

  1. macOS 安裝:https://gocv.io/getting-started/macos/

  2. 在 Linux 上安裝:https://gocv.io/getting-started/linux/

  3. Windows 安裝程序:https://gocv.io/getting-started/windows/

或者你可以在此處(https://opencv.org/)訪問官方網(wǎng)站。我們使用 MacOs 操作系統(tǒng)。

創(chuàng)建項目

首先,讓我們使用以下命令創(chuàng)建一個新項目:

mkdir?belajar-gocv
cd?belajar-gocv

然后使用以下命令創(chuàng)建一個模塊:

go?mod?init?belajar-gocv

使用另一個 IDE 或編輯器打開項目,例如 VSCode。在根目錄中創(chuàng)建一個名為main.go的文件,接下來我們將創(chuàng)建一個繪制對象的函數(shù)。

package?main

func?main()?{
??//?buat?canvas
}

安裝庫

安裝包 GoCV

go?get?-u?-d?gocv.io/x/gocv

使用 OpenCV 繪制對象

使用 OpenCV 除了可以提高圖像或視頻的圖像質(zhì)量外,還可以用于繪制和寫入對象。

創(chuàng)建畫布

打開main.go然后在 main 函數(shù)中更改/添加以下代碼:

package?main

import?"gocv.io/x/gocv"

func?main()?{
?//?membuat?window?baru
?window?:=?gocv.NewWindow("Belajar?Gambar?Objek")
?defer?window.Close()

?//?membuat?canvas
?width?:=?640
?height?:=?480
?canvas?:=?gocv.NewMatWithSize(width,?height,?gocv.MatTypeCV8UC3)

?//?loop
?for?{
??//?tampilkan?canvas?di?window
??window.IMShow(canvas)

??//?wait?key?to?press
??if?window.WaitKey(10)?>=?0?{
???break
??}
?}
}

嘗試使用以下命令運行上面的代碼:

go?run?main.go

出現(xiàn)一個黑色的空白窗口

使用 Go (Golang) 使用 OpenCV 繪制對象 GoCV

新窗口

按鍵盤上的 esc 鍵關閉窗口。

制作顏色

首先我們準備要在對象上使用的顏色。打開main.go在創(chuàng)建畫布后添加以下行

//?membuat?canvas
...

//?membuat?warna
?red?:=?color.RGBA{255,?0,?0,?0}
?green?:=?color.RGBA{0,?255,?0,?0}
?blue?:=?color.RGBA{0,?0,?255,?0}
?purple?:=?color.RGBA{106,?90,?205,?0}

//?loop
...
畫線

成功創(chuàng)建畫布后,接下來我們嘗試用線(line)繪制畫布。在畫線之前,我們必須了解畫線所用的函數(shù)和屬性。用來畫線的函數(shù)結構和屬性如下:

gocv.Line(img?*gocv.Mat,?pt1?image.Point,?pt2?image.Point,?c?color.RGBA,?thickness?int)
  • img = 用于指定使用內(nèi)存地址引用繪制線條的位置

  • pt1 = (x1, y1) 創(chuàng)建線的第一個點的起始坐標

  • pt2 = (x2, y2) 結束坐標創(chuàng)建直線的終點

  • c = (color) 一個介于 0-255 之間的值,用于創(chuàng)建 RGBA 顏色

  • thickness=線寬

打開 main.go 并添加以下行:

//?membuat?canvas
...

//?membuat?warna
...

//?membuat?garis
?gocv.Line(&canvas,?image.Pt(100,?150),?image.Pt(300,?400),?red,?1)

//?loop
...

嘗試使用以下命令運行上面的代碼:

go?run?main.go

所以結果會是這樣:

使用 Go (Golang) 使用 OpenCV 繪制對象 GoCV
創(chuàng)建一個正方形

要創(chuàng)建的第二個對象是一個正方形。

gocv.Rectangle(img?*gocv.Mat,?r?image.Rectangle,?c?color.RGBA,?thickness?int)
  • img:用于通過引用其內(nèi)存地址來指定矩形將在何處繪制

  • r = (x0, y0, x1, y1) :x0和y0是正方形左上角的坐標,x1和y1是正方形右下角的坐標

  • c = (color) :一個介于 0-255 之間的值,用于創(chuàng)建 RGBA 顏色

  • thickness:線寬

打開main.go并添加以下行:

//?membuat?canvas
...
//?membuat?warna
...
//?membuat?garis
...
//?membuat?persegi
?gocv.Rectangle(&canvas,?image.Rect(150,?200,?350,?400),?green,?2)
//?loop
...

嘗試使用以下命令運行上面的代碼:

go?run?main.go

所以結果會是這樣:

使用 Go (Golang) 使用 OpenCV 繪制對象 GoCV
創(chuàng)建一個圓
gocv.Circle(img?*gocv.Mat,?center?image.Point,?radius?int,?c?color.RGBA,?thickness?int)
  • img = 用于指定使用其內(nèi)存地址引用繪制圓的位置

  • center = (x, y) 表示圓在x和y軸上的圓心

  • radius = 表示圓的半徑(面積)

  • c = (color) 一個介于 0-255 之間的值,用于創(chuàng)建 RGBA 顏色

  • thickness = 線寬(-1 表示填充所有空格)

打開main.go并添加以下行:

//?membuat?canvas
...
//?membuat?warna
...
//?membuat?garis
...
//?membuat?persegi
...
//?membuat?lingkaran
?gocv.Circle(&canvas,?image.Pt(220,?250),?80,?blue,?-1)
//?loop
...

嘗試使用以下命令運行上面的代碼:

go?run?main.go

所以結果會是這樣的:

使用 Go (Golang) 使用 OpenCV 繪制對象 GoCV
創(chuàng)建一個橢圓
gocv.Ellipse(img?*gocv.Mat,?center?image.Point,?axes?image.Point,?angle?float64,?startAngle?float64,?endAngle?float64,?c?color.RGBA,?thickness?int)
  • center = (x, y) 橢圓中點的坐標

  • axes = (minorAxes, majorAxes) = 短軸和長軸的長度

  • angel = rotation,橢圓的旋轉(zhuǎn)角度是逆時針計算的

  • startAngle = 開始角度(順時針數(shù))

  • endAngel = 結束角度(順時針數(shù))

  • c = (color) 一個介于 0-255 之間的值,用于創(chuàng)建 RGBA 顏色

  • thickness = 線寬

打開main.go并添加以下行:

//?membuat?canvas
...
//?membuat?warna
...
//?membuat?garis
...
//?membuat?persegi
...
//?membuat?lingkaran
...
//?membuat?ellips
?gocv.Ellipse(&canvas,?image.Pt(300,?500),?image.Pt(100,?50),?45,?130,?270,?purple,?4)
//?loop
...

嘗試使用以下命令運行上面的代碼:

go?run?main.go

所以結果會是這樣:

使用 Go (Golang) 使用 OpenCV 繪制對象 GoCV
源代碼
  • https://github.com/apriliantocecep/belajar-gocv

☆ END ☆

如果看到這里,說明你喜歡這篇文章,請轉(zhuǎn)發(fā)、點贊。微信搜索「uncle_pn」,歡迎添加小編微信「 woshicver」,每日朋友圈更新一篇高質(zhì)量博文。

掃描二維碼添加小編↓文章來源地址http://www.zghlxwxcb.cn/news/detail-470130.html

到了這里,關于使用 Go (Golang) 使用 OpenCV 繪制對象 GoCV的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • gocv讀取gif多幀圖像,mp4視頻圖像,opencv,VideoCaptureFile,opencv_ffmpeg

    讀取GIF圖像 opencv中無法讀取gif圖像,這是由于license原因。轉(zhuǎn)而使用 videocapture 或者第三方的 PIL 庫(Python),但是其實Golang的基礎庫 image 中就有讀取gif圖像的。于是一個簡單的示例如下 這里只會播放一遍gif圖像,我們還可以解析gif中的LoopCount來增加循環(huán)播放的邏輯。 讀取

    2024年02月12日
    瀏覽(50)
  • 【Golang中的Go Module使用】

    Golang中的Go Module是一個用于包管理和版本控制的工具。在本文中,我們將深入探討Go Module的相關知識,包括其定義、使用方法以及一些常見的應用場景。 Go Module是Golang中的包管理和版本控制工具,它的發(fā)展歷程、用法、意義以及相關指令都對于Golang開發(fā)者來說非常重要。在本

    2024年02月16日
    瀏覽(18)
  • 【GoLang】哪些大公司正在使用Go語言

    【GoLang】哪些大公司正在使用Go語言

    前言: 隨著計算機科學和軟件開發(fā)的快速發(fā)展,編程語言的選擇變得愈加關鍵。 在這個多元化的編程語境中,Go語言(簡稱Golang)以其簡潔、高效、并發(fā)處理能力等特性逐漸受到業(yè)界關注。 越來越多的大型科技公司紛紛采用Go語言作為其軟件開發(fā)的首選語言,這種趨勢反映了

    2024年02月04日
    瀏覽(17)
  • 【Golang】Golang進階系列教程--為什么 Go 語言 struct 要使用 tags

    【Golang】Golang進階系列教程--為什么 Go 語言 struct 要使用 tags

    在 Go 語言中,struct 是一種常見的數(shù)據(jù)類型,它可以用來表示復雜的數(shù)據(jù)結構。在 struct 中,我們可以定義多個字段,每個字段可以有不同的類型和名稱。 除了這些基本信息之外,Go 還提供了 struct tags,它可以用來指定 struct 中每個字段的元信息。 在本文中,我們將探討為什

    2024年02月15日
    瀏覽(40)
  • golang IDE 使用 go-1.7 無法識別 goroot問題

    golang IDE 使用 go-1.7 無法識別 goroot問題

    當前使用了 golang IDE 要設定 go-1.17 版本作為默認 GOROOT 系統(tǒng)環(huán)境變量已經(jīng)定義好 打開了 ide 會出現(xiàn)下面問題,選擇 1.17 后會出現(xiàn)下面報錯 The selected directory is not a valid horne for GO SDK 修改 $GOROOT 下文件增加一個變量 再次在 IDC 選擇 GOROOT 就可以找到 go 1.17.2 版本 選擇后,需要關閉

    2024年02月16日
    瀏覽(47)
  • golang利用go mod巧妙替換使用本地項目的包

    golang利用go mod巧妙替換使用本地項目的包

    ??拉了兩個項目下來,其中一個項目依賴另一個項目,因為改動了被依賴的項目,想重新導入測試一下。 ??go.mod文件的require中想要被代替的包名在replace中進行一個替換,注意:用來替換的需要用絕對路徑,一開始我用~/Documents/xboot/xboot/tools/reflect沒有效果。 ??這樣原

    2024年02月15日
    瀏覽(28)
  • 使用OpenCV繪制圖形

    使用OpenCV繪制圖形

    繪制黃色的線: 繪制矩形: 繪制圓形: 繪制多邊形: 繪制文字:

    2024年01月22日
    瀏覽(18)
  • CentOS 9 x64 使用 Nginx、Supervisor 部署 Go/Golang 服務

    在 CentOS 9 x64 系統(tǒng)上,可以通過以下步驟來部署 Golang 服務。 安裝以下軟件包: Golang:Golang 編程語言 Nginx:Web 服務器 Supervisor:進程管理工具 Git:版本控制工具 EPEL:擴展軟件包 可以通過以下命令來安裝: 為 Git 生成 SSH 密鑰,以便于進行代碼管理??梢酝ㄟ^以下命令來生成

    2024年02月12日
    瀏覽(42)
  • 使用OpenCV在圖像上繪制質(zhì)心

    使用OpenCV在圖像上繪制質(zhì)心

    這段代碼中已經(jīng)實現(xiàn)了在圖像上繪制質(zhì)心的功能。質(zhì)心,也稱為重心,是物體質(zhì)量分布的幾何中心,可以通過物體質(zhì)量和位置的加權平均來求得。 在這個程序中,圖像的質(zhì)心(重心)是通過計算像素強度(可以被看作是“質(zhì)量”)的加權平均位置得到的。圖像上每一個像素都

    2024年02月11日
    瀏覽(29)
  • 一個golang小白使用vscode搭建Ununtu20.04下的go開發(fā)環(huán)境

    一個golang小白使用vscode搭建Ununtu20.04下的go開發(fā)環(huán)境

    先交代一下背景,距離正式接觸golang這門語言已經(jīng)有5年時間,平時偶爾也會用go寫寫工具和功能,但其實充其量就是語言小白,基本上就是按照教程配置好環(huán)境,按照需求寫寫邏輯,能跑起來就行了。golang隨著這幾年的變化,這門語言的變化還是非常大的,之前寫過一篇《

    2024年01月22日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包