怎么申请网站域名php网站建设思路
web/
2025/10/4 0:22:49/
文章来源:
怎么申请网站域名,php网站建设思路,天河外贸网站建设,网站安全建设目的使用conda安装opencv#xff0c;并在docker运行的容器中使用#xff0c;这里以运行则springboot应用的容器为例
步骤一#xff1a;安装
在conda中安装
# 安装依赖
conda install numpy matplotlib# 安装opencv
conda install -c conda-forge opencv
# 或者制定版本
conda…使用conda安装opencv并在docker运行的容器中使用这里以运行则springboot应用的容器为例
步骤一安装
在conda中安装
# 安装依赖
conda install numpy matplotlib# 安装opencv
conda install -c conda-forge opencv
# 或者制定版本
conda install -c conda-forge opencv4.5.3
使用编译方式安装
前提
OpenCV: OpenCV installation overview
安装好cmake3 、gcc11java-1.8.0-openjdk-devel ant其余配置项
cmake3和gcc通过编译安装
gcc
wget https://ftp.gnu.org/gnu/gcc/gcc-11.1.0/gcc-11.1.0.tar.xz
tar -xf gcc-11.1.0.tar.xz
cd gcc-11.1.0# 配置和构建
./configure
make -j$(nproc)# 安装
sudo make install# 检查安装后版本
gcc --version
问题 如果在./configure时出现
/usr/bin/ld: cannot find crt1.o: No such file or directory
/usr/bin/ld: cannot find crti.o: No such file or directory 那么 执行 ./configure --disable-multilib
其余依赖
# 安装必要的图像和视频库
sudo yum install libjpeg-turbo-devel libpng-devel libtiff-devel
sudo yum install libavc1394-devel libdc1394-devel libv4l-devel# 安装 Java如果需要 Java 支持
sudo yum install java-1.8.0-openjdk-devel#可选# 安装 GTK用于构建 OpenCV 的 GUI 模块
sudo yum install gtk2-devel# 安装 Eigen线性代数库
sudo yum install eigen3-devel# 安装 TBBIntel 线程构建块
sudo yum install tbb-devel# 安装 GStreamer用于视频处理
sudo yum install gstreamer-devel gstreamer-plugins-base-devel# 安装 ffmpeg用于视频处理
sudo yum install ffmpeg-devel# 安装 Python 3 和相关开发包
sudo yum install python3 python3-devel python3-pip
安装opencv
# 1 官网下载对应版本
wget https://github.com/opencv/opencv/archive/refs/tags/4.8.1.tar.gz
# 2 解压
tar -zxvf 4.8.1.tar.gz
# 3 进入目录创建build文件夹
mkdir build
cd build
# 4 cmake
cmake -DBUILD_opencv_javaON -D CMAKE_BUILD_TYPERELEASE -D CMAKE_INSTALL_PREFIX/usr/local ..
# 5 make
make
make install
# 6 更新库缓存
sudo ldconfig注意
cmake后一定要有日志打印代表有java调用部分否则无法通过java调用opencv 问题
cmake 时 出现 /lib64/libstdc.so.6: version GLIBCXX_3.4.20 not found
原因是gcc版本低导致没有GLIBCXX_3.4.20可以升级gcc版本选择11版本
其余安装方式
直接使用docker制作好的镜像
由于后续需要提供给java调用并且是在容器中进行那么过于依赖物理机环境后续换物理机使用时将会很麻烦可以将需要的环境安装在容器中并且制作一个基础镜像
比如可以这样操作
1. 下载一个已经安装好opencv的镜像
2.在启动镜像在镜像中安装jre
3.将容器打包成一个新的镜像这样就包含了opencv并且也包含jre了
# 1.下载opencv镜像
# 在docker hub中选择一个
# 这里选择了opencvcourses/opencv-docke包含opencv4.2
docker pull opencvcourses/opencv-docker:latest# 2.创建容器并进入
docker run -it opencvcourses/opencv-docker# 3.查看opencv版本
opencv_version
打印4.20# 4.更新
apt-get update# 5.安装 OpenJDK 8 JRE
apt-get install -y openjdk-8-jre# 6.验证
java -version 步骤二验证
在python环境中查看版本信息安装完成应该打印对应版本
pythonimport cv2
print(cv2.__version__)
如果安装的opencv没有支持python模块那么可以直接去lib中查找是否有opencv-xxx.jar和libopencv_javaxxx.so[xxx是版本号]
步骤三在springboot中使用
安装步骤中我选择了在物理机上进行编译安装后续将物理机上的opencv通过容器卷加载到容器中供java使用
具体步骤如下
在docker compose文件位置或者任意其他位置创建一个文件夹 opencv_so用于保存opencv的执行文件将/usr/lib64目录下所有关于opencv的文件拷贝到新建文件夹中 cp -r *opencv* /home/opencv_so/ 将/usr/lib64/目录下所有libpnglibtifflibIlmImflibjbiglibImathlibHalflibIexlibIexMathlibIlmThread文件拷贝到opencv_so中,命令参照2构建镜像时,创建opencv的执行位置并设置环境变量LD_LIBRARY_PATH # opencv 目录
ENV OPENCV_DIR /usr/local/opencv
RUN mkdir -p $OPENCV_DIR# 设置 Java 库路径以便找到 OpenCV 的本地库文件
ENV LD_LIBRARY_PATH $OPENCV_DIR/lib64:$LD_LIBRARY_PATH 容器卷加载在docker compose 文件中制定容器卷加载位置 # 将创建的opencv_so挂载到容器/usr/local/opencv/lib64下
- /home/opencv_so:/usr/local/opencv/lib64
验证时使用的springboot程序
在springboot中使用opencv需要将物理机安装的opencv jar文件下载到编写程序的电脑上通过maven加载到项目中
具体操作为
# opencv-java.jar为具体物理机安装的 opencv jar
mvn install:install-file -Dfileopencv-java.jar -DgroupIdorg.opencv -DartifactIdopencv-java -Dversion3.4.1 -Dpackagingjar# maven中引入dependencygroupIdorg.opencv/groupIdartifactIdopencv/artifactIdversion4.6.0/version
/dependency
测试内容
# 在需要使用opencv的类中
static {// 加载 OpenCV 本地库文件System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}# 具体使用这里创建一个opencv中的Mat类如果创建成功说明能正常调用opencv
Mat imread new Mat();
System.out.println(mat create ok); 问题不要将物理机的lib目录直接挂载到容器中
原因
基础镜像和物理机系统环境版本等可能不一致直接挂载可能出现错误
建议将opencv相关的问价挂载即可
问题java.lang.UnsatisfiedLinkError: /usr/local/opencv/lib64/libopencv_java460.so: libjpeg.so.62: cannot open shared object file: No such file or directory
原因
挂载的目录中没有libjpeg.so.62
需要将物理机的libjpeg.so.62放到opencv_so中
问题java.lang.NoClassDefFoundError: org/opencv/core/Mat
原因1
我遇到的原因定位时 libopencv_java460.so没有正常加载即java程序加载的so文件位置错误
需要制定环境变量将其正确文件放入环境变量
原因2
java程序打包jar后没有opencv-xxx.jar
可以检查
jar tf remarkback.jar | grep opencv
如果出现opencv相关的内容说明正常如果没有要么在运行程序时加载外部jar或者在打包时加入
maven配置如下【增加repackage】 buildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationexcludesexcludegroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/exclude/excludes/configurationexecutionsexecutiongoalsgoalrepackage/goal/goals/execution/executions/plugin/plugins/build
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86497.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!