当前位置: 首页 > news >正文

网站设计与网页制作项目教程长春市城乡建设部网站

网站设计与网页制作项目教程,长春市城乡建设部网站,HTML发布网站,溧阳网站建设制作opencv大多数只使用到了cpu的版本#xff0c;实际上对于复杂的图像处理过程用cuda#xff08;特别是高分辨率的图像#xff09;可能会有加速效果。是否需要使用cuda需要思考#xff1a; 1、opencv的cuda库是否提供了想要的算子。在CUDA-accelerated Computer Vision你可以…opencv大多数只使用到了cpu的版本实际上对于复杂的图像处理过程用cuda特别是高分辨率的图像可能会有加速效果。是否需要使用cuda需要思考 1、opencv的cuda库是否提供了想要的算子。在CUDA-accelerated Computer Vision你可以看到cv的cuda库提供了哪些方法。2、如果要使用cv的cuda库会涉及到数据从cpu和gpu之间的交换。一张图片首先会被cpu读取到内存中然后通过api将cpu中的数据搬运到gpu中而cpu和gpu之间的数据搬运也是很耗时的比如gpu_dst.download(dst_cpu)将gpu_dst数据搬运到dst_cpu数据是8976*4960*3耗时约37ms如果你的图像处理比较简单说不定数据搬运的耗时比直接在cpu上运行更长。 1、带cuda的opencv安装 这里的前提是你的nvidia驱动、cuda以及cudnn都安装完成可以正常使用。 首先下载版本一致的opencv和opencv-contribcuda库所在包然后解压待用。 然后查询你显卡的Compute Capability进入opencv-4.8.1后创建build文件夹终端在build中打开后执行 cmake \ -D CMAKE_BUILD_TYPERELEASE \ -D BUILD_CUDA_STUBSON \ -D WITH_CUDAON \ -D CUDA_ARCH_BIN8.9 \ -D OPENCV_EXTRA_MODULES_PATH../../opencv_contrib-4.8.1/modules .. 注意CUDA_ARCH_BIN是你查询到自己显卡的Compute CapabilityOPENCV_EXTRA_MODULES_PATH指向你的opencv_contrib-4.8.1/modules。最后的..不能省略 可以看到成功检测到我的11.8的cuda但是没有cuDNN。不知道是不是新版的原因我安装好cudnn后通过命令cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2查询cudnn版本没有任何输出但是确实存在cudnn.h并在在使用cuda时也没有问题就没有后面在opencv使用cuda也没有报错。 然后:sudo make –j15表示使用15个线程make因cpu而异。 最后sudo make install。 后续的操作参考ubuntu20.04opencvvscode添加环境变量。 2、测试 编写c代码测试 #include opencv2/opencv.hpp #include opencv2/core/cuda.hppint main() {cv::cuda::printCudaDeviceInfo(cv::cuda::getDevice());int count cv::cuda::getCudaEnabledDeviceCount();printf(GPU Device Count : %d \n, count);return 0; }如果是不支持cuda的cv则会报错error: (-216:No CUDA support) The library is compiled without CUDA support in function throw_no_cuda 3、在gpu上旋转图像 实际上在gpu上使用cv总体分为三步1将内存中的数据搬运到gpu上2使用cuda方法进行图像处理3将处理结果搬运到cpu上 下面是一个将图像逆时针旋转90度的代码其中Timer类是一个计时器从创建起计时到离开作用域被销毁时的耗时。对于4960*8976\的图像进行测试RGB指3通道Gray指单通道测量upload、rotate和download三个阶段的耗时 RGB(ms)Gray(ms)upload93rotate43download3712 可以看到对于简单的操作实际上耗时在数据的上传和下载。 #include opencv2/opencv.hpp #include opencv2/cudawarping.hpp #include timer.hint main(int argc, char *argv[]) {if (argc ! 2){ // 检查是否传入图片路径std::cout 参数错误 std::endl;}// 以灰度图模式读取输入图像cv::Mat src cv::imread(argv[1]);if (src.empty()){std::cerr Failed to read input image! std::endl;return -1;}cv::Mat dst_cpu; // 在cpu创建一个Mat接受处理后的图像结果cv::cuda::GpuMat gpu_src, gpu_dst; // 在gpu创建两个Mat分别储存旋转前后的图像因为旋转前后尺寸不一样所以必须要两个Matgpu_dst.create(8976, 4960, CV_8UC3); // 定义旋转后图像尺寸的Matcv::Mat colorImage(8976, 4960, CV_8UC3); // 在cpu创建Mat一个将灰度图转为RGB图的Mat{{Timer time(upload);gpu_src.upload(src); // 将cpu上的src搬运到gpu的gpu_src中}{Timer time(rotate); // 计时器从此刻计时直到离开作用域被销毁// 逆时针旋转90度将4960*8976转8976*4960流程是按左上角旋转后向下平移8976然后用8976*4960的Mat接受cv::cuda::rotate(gpu_src, gpu_dst, gpu_dst.size(), 90, 0, 8976);}// 将gpu的gpu_dst数据搬运到dst_cpu中好像只有gpu的数据才有方法{Timer time(download);gpu_dst.download(dst_cpu); // gpu到cpu搬运数据很耗时RGB数据耗时37msGray数据耗时12ms}}return 0; }# CMakeLists.txt cmake_minimum_required(VERSION 3.0) set(CMAKE_BUILD_TYPE Debug) project(MyProject)# 添加可执行文件 add_executable(draft draft.cpp src/timer.cpp)# 设置包含目录 target_include_directories(draft PRIVATE src)# 查找 OpenCV 库 find_package(OpenCV REQUIRED)# 将 OpenCV 库链接到可执行文件 target_link_libraries(draft PRIVATE ${OpenCV_LIBS} opencv_cudawarping)
http://www.hkea.cn/news/14497005/

相关文章:

  • 南通网站排名公司wordpress app源码
  • 微信网站模块建设举报网站
  • 做网站的大公司有哪些小程序模板商城
  • 怎么做购物型网站新乡市建设路小学网站
  • 企业如何做好网站的seo优化怎么用电脑给域名做网站
  • 如何做静态网页关键词优化下拉管家
  • 有没有专门搞网站上线的公司网站地图怎么做XML
  • 模板之家免费下载方法台州百度关键词优化
  • 广州微网站建设哪家好电子商务网站建设及维护管理ppt
  • 如何在电脑建设网站网站建设资料
  • 如何安装网站程序公司以前做的免费网站太多 新网站搜索不到
  • 开题报告风景区网站开发推广公司有哪些
  • 企业建站公司平台seo外链怎么做
  • 江苏盐城网站建设大型门户网站建设的意义
  • 梅州建站网络科技有限公司专业做网站优化价格
  • wix网站做seo如何网站开发软件要求
  • 中山精品网站建设流程名作之壁吧网站建设
  • 网站建设合作流程图西安比较厉害的软件公司
  • 请网站制作公司费用郑州人才市场网站
  • 徐州中小企业网站制作湘西北京网站建设
  • 建设工程合同备案网站龙岩做网站价格
  • 中国有没有做的好的网站河南郑州天气预报15天
  • 太原站建设有多长时间手工制作冰墩墩
  • 西安网站建设罗鑫长沙企业网站建设服务
  • 建站模板大全浅谈学校网站建设
  • 免备案php网站空间加工设备网
  • 建设论坛网站用什么cms台州关键词首页优化
  • 珠海网站建设策划方案团员个人信息查询系统
  • 网站设计代码案例网站建设设计公司类网站织梦模板 带手机端
  • 企业网站模板php苏州建设工程质量监督网站