想要使用C语言去调用opencv 做一些简单的处理,比如打开摄像头,提取帧,播放,opencv3之后的版本就没有C接口了,但是我不想学C++,只做简单的处理,2版本的就行了。
安装包在GitHub上找以前的版本,服务器安装opencv老版本的时候,一直构建不成功,把CUDA关了之后才行,不过想要使用GPU,还是先安装好GPU驱动和CUDA之后再安装opencv.
同时只能有一个版本工作,使用另一个版本工作时,需要切换版本
4.5的版本使用opencv4而不是opencv,opencv2.4.13.7使用opencv
g++ tpsy.cpp -o display_image `pkg-config --cflags --libs opencv4`
安装OPENCV
ubuntu22.04安装opencv4和opencv_contrib-CSDN博客
然后配置环境
使用下面的配置OPENCV
感觉是下面这个
Ubuntu22.04安装OpenCV4.5.1_ubuntu安装opencv4.5-CSDN博客
直接复现安装,上面的有的包下不下来(感觉可以不用下)
如果执行程序时查不到安装,就是不能使用这个库
首先,我们需要确认OpenCV是否已经被正确安装。你可以通过运行以下命令来检查:
ls /usr/local/lib | grep opencv
这个命令会列出/usr/local/lib目录下所有包含"opencv"的文件。如果OpenCV已经被正确安装,你应该能够在输出中看到一些包含"opencv"的文件。
然后执行
第一种方法:
如果OpenCV已经被正确安装,那么问题可能出在PKG_CONFIG_PATH环境变量上。你需要将OpenCV的pkg-config文件的路径添加到PKG_CONFIG_PATH环境变量中。你可以通过运行以下命令来查找OpenCV的pkg-config文件:
sudo find / -name "opencv4.pc"
然后,你需要将找到的路径添加到你的PKG_CONFIG_PATH环境变量中。你可以通过在你的~/.bashrc文件中添加以下行来实现这一点
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/path/to/opencv4.pc
请将/path/to/opencv4.pc替换为你在上一步中找到的opencv4.pc文件的路径。然后,你需要运行以下命令来使改动生效:
source ~/.bashrc
第二种方法:
手动创建opencv4.pc文件:如果重新安装OpenCV后问题仍然存在,你可以尝试手动创建一个opencv4.pc
文件。首先,你需要创建一个新的文件,你可以通过运行以下命令来创建这个文件
创建pkgconfig目录:你可以通过运行以下命令来创建pkgconfig目录:
sudo mkdir -p /usr/local/lib/pkgconfig
sudo nano /usr/local/lib/pkgconfig/opencv4.pc
版本号就是你安装的版本
prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include/opencv4
libdir=${exec_prefix}/lib
Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.5.0
Libs: -L${libdir} -lopencv_calib3d -lopencv_core -lopencv_dnn -lopencv_features2d -lopencv_flann -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_videoio -lopencv_video
Cflags: -I${includedir}
(更新PKG_CONFIG_PATH环境变量:最后,你需要将新创建的opencv4.pc文件的路径添加到你的PKG_CONFIG_PATH环境变量中。你可以通过在你的~/.bashrc文件中添加以下行来实现这一点:)
直接执行:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
然后,你需要运行以下命令来使改动生效:
source ~/.bashrc
//在使用nano
编辑器时,你可以按Ctrl+O
来保存你的更改,然后按Enter
确认文件名。最后,你可以按Ctrl+X
来退出编辑器。
复现 安装
只安装了opencv,没有扩展
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev
sudo apt-get install libtiff-dev
sudo apt-get install g++
sudo apt-get install libgtk2.0-dev
sudo apt-get install cmake
sudo apt-get install pkg-config
sudo apt-get install unzip
解压unzip
添加头文件(有的版本不需要,看情况)
vim ./opencv-4.5.0/modules/gapi/test/gapi_async_test.cpp
#include <thread>
cd opencv-4.5.0
mkdir build
cd build
cmake -DWITH_LAPACK=OFF ..
nproc 查一下自己电脑最多支持多少线程
sudo make -j2 (中间可能会卡住,关机回到原目录,执行相同的命令)(我换成4G,8线程快的很,但是最后到达100%的时候,CPU达到91度,感觉CPU要烧掉,直接关机了,换成4G,4线程)
sudo make install
执行程序时常见报错
1)Failed to load module canberra-gtk-module错误
sudo apt-get install libcanberra-gtk-module
环境配置 (如果不行,就像上面的自己创一个配置文件)
sudo vim /etc/ld.so.conf.d/opencv.conf
然后在打开的文件中添加如下内容:
/usr/local/lib
使其保存并生效
sudo ldconfig
sudo vim /etc/bash.bashrc
在文件末尾输入:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
退出保存
source /etc/bash.bashrc
测试
pkg-config opencv –modversion
opencv_version
进入opencv/samples/cpp/example_cmake目录下,终端打开,依次输入:
cmake .
make
./opencv_example
低版本opencv安装
因为现在的opencv版本不支持C接口,所以我在同一电脑上面同时安装了opencv2.4.13.7 ,安装过程一样。但是构建命令 使用下面的这个
##################################################################
当想要安装低版本的opencv时,你遇到的问题是由于C++17不再支持动态异常规范。在你的错误信息中,throw (Iex::MathExc)就是一个动态异常规范,它在C++17中被移除了。
你遇到的错误HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP可能是由于你的OpenCV库在编译时没有包含V4L(Video for Linux)。V4L是Linux系统中用于处理视频设备的一套API
-DCMAKE_INSTALL_PREFIX=/usr/local/opencv24 这个是库的安装路径,要和第一次安装的路径不同,
-DCMAKE_CXX_STANDARD=98 (编译C)
##################################################################
sudo apt-get install libv4l-dev (低版本加库)
我们使用这个命令来构建(下面两个是我安装多版本时使用的)
sudo cmake ../ -DCMAKE_CXX_STANDARD=98 \
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
-DCMAKE_CXX_EXTENSION=OFF \
-DWITH_V4L=ON\
-DCMAKE_BUILD_TYPE=Release\
-DCMAKE_INSTALL_PREFIX=/usr/local/opencv24
环境配置:(老版本做完环境配置之后就应该可以使用了)
添加路径 sudo vim /etc/ld.so.conf.d/opencv24.conf
然后在打开的文件中添加如下内容:
/usr/local/opencv24/lib
保存退出,之后再终端输入:sudo ldconfig
sudo vim /etc/bash.bashrc
打开文件后在末尾输入:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv24/lib/pkgconfig
export PKG_CONFIG_PATH
保存退出,终端输入:
source /etc/bash.bashrc
如果想要切换版本,去掉opencv24(就是上一个opencv的安装路径)
sudo vim /etc/bash.bashrc
打开文件后在末尾输入:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv24/lib/pkgconfig
export PKG_CONFIG_PATH
保存退出,终端输入:
source /etc/bash.bashrc
服务器安装 opencv 2.4.13.7
#############################################################################
#######################################################
-DWITH_CUDA=OFF \ 服务器不使用CUDA就必须按上,要不然不成功
安装失败之后
删除之前生成的build
目录,然后重新运行CMake:sudo rm -rf build
在服务器上安装2.4版本出现错误
sudo cmake .. -DCMAKE_CXX_STANDARD=98 \
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
-DCMAKE_CXX_EXTENSION=OFF \
-DWITH_V4L=ON \
-DCMAKE_BUILD_TYPE=Release \
-DWITH_CUDA=OFF \
-DCPACK_PACKAGE_VERSION=2.4.13.7 \
-DCMAKE_INSTALL_PREFIX=/usr/local/opencv24