【GO-OpenCV】go-cv快速配置

最近对golang实现目标检测心血来潮,尝试在没有sudo权限的平台配置go-cv,有所发现,索性多个平台都做尝试

安装Go语言(Golang)

通过包管理器安装(适用于Debian/Ubuntu)(有点慢)

  1. 更新包列表:

    sudo apt update
    
  2. 安装Go语言:

    sudo apt install golang-go
    
  3. 下载Go语言的二进制文件:

    • 访问Go语言的下载页面。
    • 选择适合你系统的版本(例如,Linux AMD64),然后下载。

    或者使用wget命令直接下载,例如:

    wget https://golang.google.cn/dl/go1.21.1.linux-amd64.tar.gz
    
  4. 解压下载的文件:

    tar -C /usr/local -xzf go1.21.1.linux-amd64.tar.gz
    
  5. 设置环境变量:

    • 打开或创建~/.profile文件,并添加以下内容:

      export PATH=$PATH:/usr/local/go/bin
      
    • 使环境变量生效:

      source ~/.profile
      

验证安装

无论你使用哪种方法安装Go语言,都可以通过以下命令验证安装是否成功:

go version

如果安装成功,你将看到类似如下的输出:

go version go1.17.6 linux/amd64

这样,你就成功在Linux系统上安装了Go语言。

安装conda

探索Miniconda3:简单、灵活的Python环境和软件包管理利器
Miniconda3是一个轻量级的Anaconda发行版,可以在Miniconda官方网站上下载适合你操作系统的安装包。选择对应的版本(例如,Windows、MacOS或Linux)并下载安装包。

在下载完成后,运行安装脚本并按照提示进行安装。你可以选择默认安装路径,也可以自定义安装路径。

在这里插入图片描述

常用依赖项

sudo apt-get update
sudo apt-get install -y build-essential cmake git pkg-config libgtk-3-dev \libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \gfortran openexr libatlas-base-dev python3-dev python3-numpy \libtbb2 libtbb-dev libdc1394-22-dev

测试代码

我们以加载YOLOV3模型开始

  • 设置 GOPROXY:尝试设置 GOPROXY 环境变量,使用其他模块代理或直接指向源仓库:
    export GOPROXY=https://goproxy.io,direct
    
mkdir golov3
cd golov3
go mod init golov3 
touch load.go
export GOPROXY=https://goproxy.io,direct
package mainimport ("fmt""gocv.io/x/gocv"
)func main() {net := gocv.ReadNet("yolov3.weights", "yolov3.cfg")if net.Empty() {fmt.Println("无法加载模型文件")return}layerNames := net.GetLayerNames()for _, name := range layerNames {fmt.Println(name)}
}
go get gocv.io/x/gocv
在这里插入代码片

换版本

module golov3go 1.21.4require gocv.io/x/gocv v0.31.0 // indirect
go mod tidy
go run load.go

没有权限

飞桨AI

**飞桨自带golang和conda环境 **

pkg-config

aistudio@jupyter-7169344-8038676:~/golov3$ go run load.go
go build gocv.io/x/gocv:
pkg-config --cflags – opencv4 pkg-config: exec: “pkg-config”: executable file not found in $PATH

conda
conda create myenv

conda install -c conda-forge pkg-config -y

EnvironmentNotWritableError: The current user does not have write permissions to the target environment.environment location: /opt/conda
uid: 1000
gid: 1000

conda init
conda create -n myenv
conda activate myenv
conda install -c conda-forge pkg-config -y

装OpenCV

go build gocv.io/x/gocv:
pkg-config --cflags – opencv4 Package opencv4 was not found in the pkg-config search path. Perhaps you should add the directory
containing `opencv4.pc’ to the PKG_CONFIG_PATH environment variable No
package ‘opencv4’ found pkg-config: exit status 1

conda install -c conda-forge opencv=4.6.0

设置 LD_LIBRARY_PATH 环境变量

缺什么补什么

/tmp/go-build3099974566/b001/exe/load: error while loading shared
libraries: libopencv_highgui.so.406: cannot open shared object file:
No such file or directory exit status 127

find / -name "libopencv_highgui.so.406" 2>/dev/null

(myenv) aistudiojupyter-7169344-7984906:~/godcv$ find / -name
“libopencv_highgui.so.406” 2>/dev/null
/home/aistudio/.conda/pkgs/opencv-4.6.0-py310ha16400d_5/lib/libopencv_highgui.so.406
/home/aistudio/.conda/envs/myenv/lib/libopencv_highgui.so.406

我们找到了 libopencv_highgui.so.406 的位置

/home/aistudio/.conda/pkgs/opencv-4.6.0-py310ha16400d_5/lib/libopencv_highgui.so.406                                                                                                           
/home/aistudio/.conda/envs/myenv/lib/libopencv_highgui.so.406 

以下是具体步骤:

  1. 设置 LD_LIBRARY_PATH 环境变量

    将 Conda 环境中的库路径添加到 LD_LIBRARY_PATH

    export LD_LIBRARY_PATH=/home/aistudio/.conda/envs/myenv/lib:$LD_LIBRARY_PATH
    

    你可以将这条命令添加到你的 shell 配置文件(如 .bashrc.zshrc)中,以便每次启动 shell 时自动设置:

    echo 'export LD_LIBRARY_PATH=/home/aistudio/.conda/envs/myenv/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
    source ~/.bashrc
    
  2. 验证环境变量

    确认 LD_LIBRARY_PATH 已正确设置:

    echo $LD_LIBRARY_PATH
    

    你应该看到 /home/aistudio/.conda/envs/myenv/lib 在输出中。

  3. 重新编译并运行 Go 程序

    确保所有环境变量和库路径都正确设置后,重新编译并运行你的 Go 程序:

    go run load.go
    

在这里插入图片描述

有权限

本地Linux虚拟机

Ubuntu扩容

我使用虚拟机一度安装失败,发现原因是磁盘内存不足,OpenCV没安装完整

sudo apt-get install gparted
sudo gparted

pkg-config

aistudio@jupyter-7169344-8038676:~/golov3$ go run load.go
go build gocv.io/x/gocv:
pkg-config --cflags – opencv4 pkg-config: exec: “pkg-config”: executable file not found in $PATH

有权限(似乎不好用)
sudo apt-get install -y pkg-config
没权限
conda install -c conda-forge pkg-config -y

EnvironmentNotWritableError: The current user does not have write permissions to the target environment.environment location: /opt/conda
uid: 1000
gid: 1000

conda init
conda create -n myenv
conda activate myenv
conda install pkg-config
conda install -c conda-forge pkg-config -y

装OpenCV

go build gocv.io/x/gocv:
pkg-config --cflags – opencv4 Package opencv4 was not found in the pkg-config search path. Perhaps you should add the directory
containing `opencv4.pc’ to the PKG_CONFIG_PATH environment variable No
package ‘opencv4’ found pkg-config: exit status 1

有权限(似乎不好用)
sudo apt-get update
sudo apt-get install libopencv-dev
没权限
conda install -c conda-forge opencv=4.6.0

设置 LD_LIBRARY_PATH 环境变量

缺什么补什么

/tmp/go-build3099974566/b001/exe/load: error while loading shared
libraries: libopencv_highgui.so.406: cannot open shared object file:
No such file or directory exit status 127

find / -name "libopencv_highgui.so.406" 2>/dev/null

在这里插入图片描述

我们找到了 libopencv_highgui.so.406 的位置

/home/qqq/miniconda3/lib/libopencv_highgui.so.406/home/qqq/miniconda3/pkgs/libopencv-4.6.0-py310h5bd1119_9/lib/libopencv_highgui.so.406

以下是具体步骤:

  1. 设置 LD_LIBRARY_PATH 环境变量

    将 Conda 环境中的库路径添加到 LD_LIBRARY_PATH

    export LD_LIBRARY_PATH=/home/qqq/miniconda3/lib:$LD_LIBRARY_PATH
    

    你可以将这条命令添加到你的 shell 配置文件(如 .bashrc.zshrc)中,以便每次启动 shell 时自动设置:

    echo 'export LD_LIBRARY_PATH=/home/qqq/miniconda3/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
    source ~/.bashrc
    
  2. 验证环境变量

    确认 LD_LIBRARY_PATH 已正确设置:

    echo $LD_LIBRARY_PATH
    

    你应该看到 /home/aistudio/.conda/envs/myenv/lib 在输出中。

  3. 重新编译并运行 Go 程序

    确保所有环境变量和库路径都正确设置后,重新编译并运行你的 Go 程序:

    go run load.go
    

在这里插入图片描述

WINDOWS(待续,暂未成功)

安装Go

  1. 打开命令提示符(可以通过按 Win + R,然后输入 cmd 并按回车来打开)。

  2. 使用 curl 命令下载Go 1.21.11的安装包。如果你没有安装 curl ,你可以先安装它们。

    使用 curl

    curl -O https://dl.google.com/go/go1.21.11.windows-amd64.msi
    
  3. 打开一个新的命令行窗口(非常重要,因为环境变量的更改需要新的命令行窗口才能生效)。

  4. 输入以下命令来验证Go是否安装成功:

    go version
    

在Windows命令行中设置 GOPROXY 环境变量

以下是一个完整的示例,展示如何在Windows命令行中设置 GOPROXY 环境变量:

  1. 打开命令提示符。

  2. 设置 GOPROXY 环境变量(临时):

    set GOPROXY=https://goproxy.io,direct
    
  3. 或者设置 GOPROXY 环境变量(永久):

    setx GOPROXY https://goproxy.io,direct
    
  4. 验证环境变量设置:

    echo %GOPROXY%
    

通过这些步骤,你应该能够在Windows命令行中成功设置 GOPROXY 环境变量。如果你有任何其他问题,请告诉我。

curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe
setx PATH "%PATH%;C:\Users\admin\miniconda3;C:\Users\admin\miniconda3\Scripts"

如果你看到 'conda' 不是内部或外部命令,也不是可运行的程序或批处理文件 的错误消息,这通常意味着Conda没有正确安装,或者Conda的路径没有添加到系统的环境变量中。

步骤1:安装Conda

如果你还没有安装Conda,可以从以下链接下载并安装:

  • Anaconda:包含了大量科学计算包,适合需要完整科学计算环境的用户。
  • Miniconda:一个轻量级的Conda安装包,只包含Conda和Python,适合需要最小化安装的用户。

步骤2:添加Conda到系统路径

如果你已经安装了Conda,但仍然看到错误消息,你需要确保Conda的路径已添加到系统的环境变量中。

方法1:手动添加Conda路径
  1. 找到Conda的安装路径
    通常,Conda会安装在你的用户目录下,例如 C:\Users\YourUsername\Anaconda3C:\Users\YourUsername\Miniconda3

  2. 添加路径到系统环境变量

    • 右键点击“此电脑”或“计算机”,选择“属性”。
    • 点击“高级系统设置”。
    • 点击“环境变量”。
    • 在“系统变量”部分,找到名为 Path 的变量,选中并点击“编辑”。
    • 点击“新建”,然后添加Conda的安装路径,例如 C:\Users\YourUsername\Anaconda3C:\Users\YourUsername\Anaconda3\Scripts
    • 点击“确定”保存更改。
  3. 重新启动命令提示符
    关闭并重新打开命令提示符,以使更改生效。

方法2:使用Conda自带的脚本

如果你使用的是Anaconda Prompt或Miniconda Prompt,这些提示符会自动配置环境变量,你可以直接使用它们。

验证Conda安装

打开命令提示符或Anaconda Prompt,运行以下命令来验证Conda是否正确安装:

conda --version

如果安装成功,你会看到Conda的版本信息。

  1. 创建新的Conda环境

    conda create -n gocv-env 
    
  2. 激活Conda环境

    conda activate gocv-env
    
  3. 安装OpenCV

    conda install -c conda-forge opencv
    
  4. 获取GoCV

    go get -u -d gocv.io/x/gocv
    
  5. 设置环境变量

    set OPENCV_DIR=%CONDA_PREFIX%
    set CGO_CPPFLAGS=-I%CONDA_PREFIX%\Library\include
    set CGO_LDFLAGS=-L%CONDA_PREFIX%\Library\lib
    
  6. 验证安装

    go run -tags customenv github.com/hybridgroup/gocv/cmd/version/main.go
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/353696.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AbMole带你探索颅内压力与肌肉生长的联系:一项突破性研究

在生物医学领域,颅内压力(ICP)的调控机制一直是研究的热点。最近,一项发表在《PLOS ONE》上的研究为我们揭示了颅内压力与后颅窝肌肉生长之间的潜在联系,为我们理解某些慢性头痛的成因提供了新的视角。 颅内压力的异常…

大数据的发展,带动电子商务产业链,促进了社会的进步【电商数据采集API接口推动电商项目的源动力】

最近几年计算机技术在诸多领域得到了有效的应用,同时在多方面深刻影响着我国经济水平的发展。除此之外,人民群众的日常生活水平也受大数据技术的影响。 在这其中电子商务领域也在大数据技术的支持下,得到了明显的进步。虽然电子商务领域的发…

酷开科技将AI与大数据融合,成为OTT大屏营销革新的驱动力

在数字化浪潮的推动下,营销领域正经历着深刻的变革。而在这样一个媒介渠道分散、注意力碎片化的时代,“大屏”是难得能让消费者们“精神集中”高度卷入的内容消费场景,也是能让品牌一对多地高效触达家庭人群的通道,大屏的独特营销…

TVBOX 最新版下载+视频源教程

下载链接 wx 搜索 Geek 前端 发送电视资源进行获取 操作教程

【数据结构与算法】对称矩阵,三角矩阵 详解

给出对称矩阵、三角矩阵的节省内存的存贮结构并写出相应的输入、输出算法。 对称矩阵和三角矩阵可以通过特殊的存储结构来节省内存。这种存储结构只存储矩阵的一部分元素,而不是全部元素。 对称矩阵:对于一个n阶对称矩阵,我们只需要存储主对…

VUE 项目用 Docker+Nginx进行打包部署

一、Docker Docker 是一个容器化平台,允许你将应用程序及其依赖项打包在容器中。使用 Docker,你可以创建一个包含 Vue.js 应用程序的容器镜像,并在任何支持 Docker 的环境中运行该镜像。 二、Nginx Nginx 是一个高性能的 HTTP 服务器和反向…

钡铼技术BL104在环境监测站多协议采集保障数据全面准确

随着工业化和城市化进程的加快,环境污染问题日益严重,环境监测站在保护生态环境、保障公众健康中的作用变得越来越重要。钡铼技术PLC物联网关BL104,为环境监测站提供了一种高效、可靠的多协议数据采集解决方案,保障了监测数据的全…

Hype 4(html5工具) mac版下载-Hype 4 for mac软件最新版下载附加详细安装步骤

用户量向我们证明了矢量形状,矢量是使用矢量工具绘制的形状,包括直线,曲线和复杂形状。有目共睹的是Hype是一款强大的Mac OS平台 HTML5 创作工具,它能够在网页上做出赏心悦目的动画片效果,创建丰富的网页交互动画片&am…

域策略笔记

域策略 导航 文章目录 域策略导航一、设置客户端壁纸二、重定向用户配置文件路径三、部署网络打印机四、部署共享文件夹为网络驱动器五、通过域策略推送软件安装六、通过域策略限制软件的使用通过路径进行限制通过进程限制 七、通过域策略将文件添加白名单八、通过域策略添加可…

大数据集群离线解析经纬度逆编码地址

背景 最近有个需要需求把经纬度解析为地址,那么通常解析地址市面上流行的方案就是调取百度、高德地图的接口进行解析。 难点 但是在用这个方案遇到一个问题就是企业认证的百度地图每天的逆编码解析为300w次,qps为100次/秒,对于日增上千万的…

大数据实训项目(小麦种子)-03、大数据环境Hadoop、Mapreduce、Hive、Hbase、HDFS搭建服务及调试

文章目录 前言一、Linux系统Centos7安装配置JDK8二、Linxu系统Centos7中搭建Hadoop3.1.0服务下载地址服务1:详细步骤(初始化与启动dfs服务)详细步骤配置环境变量 服务2:Hadoop(YARN)环境搭建 三、Linux系统搭建Hive3.1.2服务前提条…

SysTools MailXaminer: 电子邮件取证调查中的链接分析和时间线分析

天津鸿萌科贸发展有限公司是 SysTools 系列软件的授权代理商。 SysTools MailXaminer 电子邮件取证软件提供全面强大的解决方案,通过简化的操作,从电子邮件客户端、网络邮箱服务器、磁盘镜像、Skype 通讯工具中解密并搜索证据。软件对调查工作的每一阶段…

基于 Transformer 的大语言模型

语言建模作为语言模型(LMs)的基本功能,涉及对单词序列的建模以及预测后续单词的分布。 近年来,研究人员发现,扩大语言模型的规模不仅增强了它们的语言建模能力,而且还产生了处理传统NLP任务之外更复杂任务…

这些已经死去的软件,依旧无可替代

互联网这条长河里,软件们就像流星一样,一闪而过。有的软件火过一段时间,然后就慢慢消失了。 说不定有些软件你以前天天用,但不知道从什么时候开始就不再用了。时间一天天过去,我们的热情、记忆都在消退,还…

七、(正点原子)Linux并发与竞争

Linux是多任务操作系统,肯定会存在多个任务共同操作同一段内存或者设备的情况,多个任务甚至中断都能访问的资源叫做共享资源。在驱动开发中要注意对共享资源的保护,也就是要处理对共享资源的并发访问。 一、并发与竞争 1、简介 并发就是多个…

计算机行业的现状与未来之2024

年年都说编程好,编程工资涨不了。 人家骑车送外卖,月入两万好不好。 一、计算机专业的背景与现状 在过去几十年里,计算机科学相关专业一直是高考考生的热门选择。无论是计算机科学与技术、软件工程,还是人工智能与大数据&#xff…

PR软件视频抠图换背景

1 新建项目 2 新建序列 在项目的右下角有个图标,新建 序列 序列是视频的制作尺寸,根据自己的需要选择 3 新建颜色遮罩 在项目的右下角--新建颜色遮罩--选择黑色--确定 4 导入视频 把要导入视频的文件夹打开,把视频拖到 项目 里 把黑色遮罩拖…

#QT(QCharts绘制曲线)

1.IDE:QTCreator 2.实验:绘制曲线图表 3.记录: 4.代码 pro QT core gui #加入以下代码引入charts QT charts greaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c17# You can make your code fail to compile if it uses depre…

jdk下载安装及电脑上同时安装多个jdk

一、jdk的下载 官方地址: Java Software | Oracle 系统环境变量配置 1、首先新建JDK1.8和17的JAVA_HOME,他们的变量名区分开,分别为JAVA17_HOME,JAVA8_HOME。分别指向他们的安装地址。 2、新建配置他们可变的地址,这个环境变量的值…

Java实现一个解析CURL脚本小工具

该工具可以将CURL脚本中的Header解析为KV Map结构;获取URL路径、请求类型;解析URL参数列表;解析Body请求体:Form表单、Raw Body、KV Body、XML/JSON/TEXT结构体等。 使用示例 获取一个http curl脚本: curl --locatio…