linux上安装opencv-gpu相关

参考:
https://blog.csdn.net/Felaim/article/details/103971397
https://zhuanlan.zhihu.com/p/134247738
是opencv与opencv_contrib一起安装cmake,已经安装过的我的操作办法是将cmake以前build文件夹内的内容删除。

下载与opencv相对应版本的opencv_contrib,把文件夹放在opencv文件夹里

cmake \
	-D CMAKE_BUILD_TYPE=RELEASE \
    -D OPENCV_GENERATE_PKGCONFIG=ON \
	-D CMAKE_INSTALL_PREFIX=/usr/local \
	-D OPENCV_EXTRA_MODULES_PATH= /路径/opencv_contrib/modules \//写opencv_contrib放的地址
	-D CUDA_CUDA_LIBRARY=/usr/local/cuda/lib64/stubs/libcuda.so \
	-D CUDA_ARCH_BIN=xx 这个需要去英伟达官网查询 \
	-D CUDA_ARCH_PTX="" \
	-D WITH_CUDA=ON \
	-D WITH_TBB=ON \
	-D BUILD_NEW_PYTHON_SUPPORT=ON \
	-D WITH_V4L=ON \
	-D INSTALL_C_EXAMPLES=ON \
	-D INSTALL_PYTHON_EXAMPLES=ON \
	-D BUILD_EXAMPLES=ON \
	-D WITH_QT=ON \
	-D WITH_OPENGL=ON \
	-D ENABLE_FAST_MATH=1 \
	-D CUDA_FAST_MATH=1 \
	-D WITH_CUBLAS=1 \
	-D WITH_NVCUVID=ON \
	-D BUILD_opencv_cudacodec=OFF ..

注意引用该opencv-gpu的linux项目中的cmakeLists中引用的cuda相关库也需要添加。
举例cmakelist

# CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)
# 项目信息
project (opencvTest)


# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_SRCS 变量
aux_source_directory(./src SRC_LIST)


#引用头文件
include_directories (/usr/local/include/opencv4)
include_directories (/usr/local/include/opencv4/opencv2)


#引用库文件
link_directories(/home/adlink/wjp/opencv-4.5.3/build/lib)


# 指定生成目标
add_executable(opencvTest ${SRC_LIST})


target_link_libraries (opencvTest
opencv_imgproc opencv_core opencv_features2d opencv_highgui opencv_photo opencv_calib3d opencv_dnn  
opencv_flann opencv_gapi opencv_imgcodecs opencv_ml opencv_objdetect opencv_stitching opencv_videoio opencv_video 
opencv_cudaarithm
  opencv_cudafilters
  opencv_cudawarping
  opencv_cudaimgproc
  opencv_cudafeatures2d
  opencv_cudaoptflow
  opencv_cudabgsegm
  opencv_cudastereo
  opencv_cudaobjdetect
)

相对应得opencv-gpu函数需要查询相对应得opencv版本手册,注意一定要是对应的版本
opencv4.5.3 Image Warping
比如要使用opencv-gpu中的图像处理函数,在cpp文件中要引用相应头文件
#include <opencv2/cudawarping.hpp>
使用opencv-gpu中旋转函数的的cpp文件

#include <opencv2/opencv.hpp>
#include "opencv2/imgproc/imgproc.hpp"
#include <opencv2/cudawarping.hpp>

//#include "opencv2/highgui/highgui.hpp"

using namespace cv;
int main()
{
    cv::cuda::GpuMat Gsrc,Gdst;

	const char* filename = "../test.bmp";
 
 	cv::Mat src = cv::imread(filename,0);


    cv::Mat dst;

    Point center;    
    center.x=float (src.cols/2);  
    center.y=float (src.rows/2);  
    //计算二维旋转的仿射变换矩阵  

    double angle = -30.0;
    double scale = 0.8;

    Mat rotMat(2, 3, CV_32FC1);


	double time0 = static_cast<double>(cv::getTickCount());	

    int i = 0;
    while(i<1000)
    {
    Gsrc.upload(src);//将内存数据上传到显存中

    rotMat = getRotationMatrix2D( center, angle,scale);  
    //变换图像,并用黑色填充其余值  
    cv::cuda::warpAffine(Gsrc,Gdst,rotMat,src.size() );
    Gdst.download(src);
    i++;
    }

    time0 = ((double)cv::getTickCount() - time0) / cv::getTickFrequency();
	printf("time:%f\n", time0/1000);

	imwrite("/home/adlink/wjp/opencvTest/outPic/Gpu_rotate.bmp",src);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值