安装参考:https://blog.csdn.net/Taylor_0522/article/details/119172807
使用参考:https://blog.wangqi.love/articles/Java/Java%E8%B0%83%E7%94%A8opencv.html
dockerfile
FROM coding-public-docker.pkg.coding.net/public/docker/openjdk:8
制作镜像并进入容器
docker build -t face-petition-java:1.0.0.0802 .
docker run -it --entrypoint=/bin/bash face-petition-java:1.0.0.0802
安装依赖
apt update
apt install build-essential cmake net-tools git vim unzip iputils-ping -y
apt install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libswresample-dev libavresample-dev libgphoto2-dev
apt install libgtk3.0 #安装过程中选 6 Asia 70 Shanghai
apt install libgstreamer1.0-dev libgstreamer1.0-dev
apt install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev
apt install ant
下载opencv
wget https://github.com/opencv/opencv/archive/4.6.0.zip
unzip 4.6.0.zip
cd opencv-4.6.0
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/java/opencv-4.6.0/build ..
或者
cmake -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_opencv_world=ON -D OPENCV_DNN_CUDA=OFF -D WITH_CUDA=OFF -D CMAKE_INSTALL_PREFIX=/usr/local/opencv460 ..
注意:其中,BUILD_opencv_world=ON 将所有opencv必要库绑定到libopencv_world460.so文件,工程中直接使用该 .so文件即可;CMAKE_INSTALL_PREFIX=/usr/local/opencv460 将opencv相关安装到/usr/local/opencv460目录中,工程中注意连接该目
编译安装
make -j12
make install
运行结束后,即可以用C++调用了。
用cmake生成java的jar
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/java/opencv-4.6.0/javaLib -DBUILD_TESTS=OFF ..
或者
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv460 -DBUILD_TESTS=OFF -DBUILD_opencv_java=ON ..
make -j12
make install
以上操作结束后, 看看build文件夹, bin目录下是不是有一个opencv-460.jar文件:
报错
Failed to fetch http://mirrors.tencentyun.com/debian/pool/main/v/vim/xxd_8.1.0875-5_amd64.deb Something wicked happened resolving 'mirrors.tencentyun.com:http' (-5 - No address associated with hostname)
解决方案
ping后发现网络不通
ping mirrors.tencentyun.com
cat /etc/apt/sources.list
把内网地址mirrors.tencentyun.com换成外网mirrors.tencent.com
deb http://mirrors.tencent.com/debian buster main contrib non-free
deb http://mirrors.tencent.com/debian buster-updates main contrib non-free
deb http://mirrors.tencent.com/debian-security buster/updates main
#deb http://mirrors.tencent.com/debian buster-backports main contrib non-free
#deb http://mirrors.tencent.com/debian buster-proposed-updates main contrib non-free
deb-src http://mirrors.tencent.com/debian buster main contrib non-free
deb-src http://mirrors.tencent.com/debian buster-updates main contrib non-free
deb-src http://mirrors.tencent.com/debian-security buster/updates main
#deb-src http://mirrors.tencent.com/debian buster-backports main contrib non-free
#deb-src http://mirrors.tencent.com/debian buster-proposed-updates main contrib non-free
通过拷贝文件的方式更改
docker cp 3abdb23ac326:/etc/apt/sources.list /data/mart/face_insight/java_dockerfile/
docker cp /data/mart/face_insight/java_dockerfile/sources.list 3abdb23ac326:/etc/apt/