活了这么大也没中过奖,也没中过超过20块钱的彩票,居然在这个地方中奖了,很犀利!!
最终换成4.5.5版本的成功了:
cmake的内容:
cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_C_COMPILER=/usr/bin/gcc \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules/ \
-D CUDA_CUDA_LIBRARY=/usr/lib/x86_64-linux-gnu/libcuda.so \
-D CUDA_ARCH_BIN=7.5 \
-D CUDA_ARCH_PTX="" \
-D WITH_CUDA=ON \
-D WITH_TBB=ON \
-D WITH_FFMPEG=ON \
-D BUILD_PYTHON_SUPPORT=ON \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D BUILD_OPENCV_PYTHON3=ON \
-D PYTHON_INCLUDE_DIR=(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
-D PYTHON_PACKAGES_PATH=(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \
-D WITH_V4L=ON \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=ON \
-D WITH_QT=ON \
-D WITH_GSTREAMER=ON \
-D WITH_OPENGL=ON \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_PC_FILE_NAME=opencv.pc \
-D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
-D CMAKE_LIBRARY_PATH=/usr/local/cuda/lib64/stubs \
-D WITH_CUBLAS=ON \
-D WITH_NVCUVID=ON \
-D BUILD_opencv_cudacodec=ON \
-D OPENCV_DNN_CUDA=ON \
-D WITH_CUDNN=ON \
-D OPENCV_ENABLE_NONFREE=ON\
-D WITH_GSTREAMER=ON \
-D BUILD_EXAMPLES=ON ..
兄弟们,发福利了啊,踩坑无数总结的.cache文件:
链接: https://pan.baidu.com/s/1Eq2U6WD3AL6lAaHLMqed9w 提取码: 6avj
–来自百度网盘超级会员v5的分享
永久有效!
哭泣,纪念我逝去的脑细胞!
2022年8月3更新:
今天编译opencv报错,报错的内容是libopencv_sfm.so 符号未定义等错误,找了很久没找到解决方案,最后我的解决方案是重新装glog --> 重新装gflags --> 重新装ceres-solver,最后重新编译opencv,整套完成解决了问题
2022.12.1更新
验证opencv有没有成功安装, 在opencv的根目录下运行:
./samples/cpp/example_cmake
cmake .
make
./opencv_example
2022.12.1更新
1.由于我电脑里的gcc, g++ 版本较多,所以编译器那边要注意下:
-D CMAKE_C_COMPILER=/usr/bin/gcc \
-D CMAKE_CXX_COMPILER=/usr/bin/g++ \
2.我为了方便查看opencv4版本,所以编译选项加上这个
-D OPENCV_PC_FILE_NAME=opencv4.pc \
但是我今天忘了加!
在/usr/local/lib/pkgconfig 下新建opencv4.pc
prefix=/usr/local
exec_prefix=${prefix}
includedir=/usr/local/include/opencv4
libdir=/usr/local/lib/opencv4
Name: opencv4.pc
Description: Open Source Computer Vision Library
Version: 4.5.3
Libs: -L${exec_prefix}/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir}
#include
#include
int main(int argc, char* argv[])
{
cv::cuda::GpuMat img(400, 600, CV_8UC3, cv::Scalar(255, 0, 0));
cv::Mat cpuImg;
img.download(cpuImg);
cv::imshow("test", cpuImg);
cv::waitKey(0);
return 0;
}
昨天临走的时候g++编译成功,但是vscode调用不成功,主要是cv::cuda:cvtColor函数,今天可以了
在task.json中加上lib库,现在的task.json长这样
{
"tasks": [
{
"type": "shell",
"label": "g++ build active file",
"command": "g++",
"args": [
"-g",
"-std=c++11",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}.out",
"`pkg-config", "--cflags", "--libs", "opencv`",
"-I", "/usr/local/include/opencv4",
"-I", "/usr/local/include/opencv4/opencv2",
"-I", "/usr/local/include",
"-L", "/usr/local/lib",
"-l", "opencv_core",
"-l", "opencv_imgproc",
"-l", "opencv_imgcodecs",
"-l", "opencv_video",
"-l", "opencv_ml",
"-l", "opencv_highgui",
"-l", "opencv_objdetect",
"-l", "opencv_flann",
"-l", "opencv_imgcodecs",
"-l", "opencv_photo",
"-l", "opencv_videoio"
],
"options": {
"cwd": "/usr/bin"
},
"group": {
"kind": "build",
"isDefault": true
}
}
],
"version": "2.0.0"
}
参考链接:
实践出真知——Ubuntu 18.04 VSCODE配置OpenCV4.5运行YOLO4模型