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

深圳沙井做公司网站学校网站建设报价单

深圳沙井做公司网站,学校网站建设报价单,莱芜金点子广告手机版,24小时学会网站建设 pdf下载cuda小白 原始API链接 NPP GPU架构近些年也有不少的变化#xff0c;具体的可以参考别的博主的介绍#xff0c;都比较详细。还有一些cuda中的专有名词的含义#xff0c;可以参考《详解CUDA的Context、Stream、Warp、SM、SP、Kernel、Block、Grid》 常见的NppStatus#xf…cuda小白 原始API链接 NPP GPU架构近些年也有不少的变化具体的可以参考别的博主的介绍都比较详细。还有一些cuda中的专有名词的含义可以参考《详解CUDA的Context、Stream、Warp、SM、SP、Kernel、Block、Grid》 常见的NppStatus可以看这里。 7 是图像的傅里叶变换还在学习中 本文主要讲述的是形态学变换 Dilation 膨胀操作对二值化物体边界点进行扩充将与物体接触的所有背景点合并到该物体中使边界向外部扩张。如果两个物体间隔较近会将两物体连通在一起。 // 返回mask下的最大像素值作为输出的pixel如果mask的值为0则不参与最大值查询 NppStatus nppiDilate_8u_C3R(const Npp8u *pSrc,Npp32s nSrcStep,Npp8u *pDst,Npp32s nDstStep,NppiSize oSizeROI,const Npp8u *pMask,NppiSize oMaskSize,NppiPoint oAnchor); // 与前一个接口的区别是多了一个borderType的类型指定 /* NppiBorderType {NPP_BORDER_UNDEFINED,NPP_BORDER_NONE,NPP_BORDER_CONSTANT,NPP_BORDER_REPLICATE,NPP_BORDER_WARP,NPP_BORDER_MIRROR }; */ NppStatus nppiDilateBorder_8u_C3R(const Npp8u *pSrc,Npp32s nSrcStep,NppiSize oSrcSize,NppiPoint oSrcOffset,Npp8u *pDst,Npp32s nDstStep,NppiSize oSizeROI,const Npp8u *pMask,NppiSize oMaskSize,NppiPoint oAnchor,NppiBorderType eBorderType); // 特定大小的kernel NppStatus nppiDilate3x3_8u_C3R(const Npp8u *pSrc,Npp32s nSrcStep,Npp8u *pDst,Npp32s nDstStep,NppiSize oSizeROI);code #include iostream #include cuda_runtime.h #include npp.h #include opencv2/opencv.hpp#define CUDA_FREE(ptr) { if (ptr ! nullptr) { cudaFree(ptr); ptr nullptr; } }int main() {std::string directory ../;cv::Mat image_dog cv::imread(directory dog.png);int image_width image_dog.cols;int image_height image_dog.rows;int image_size image_width * image_height;// device memory // inputuint8_t *in_image;cudaMalloc((void**)in_image, image_size * 3 * sizeof(uint8_t));cudaMemcpy(in_image, image_dog.data, image_size * 3 * sizeof(uint8_t), cudaMemcpyHostToDevice);// outputuint8_t *out_ptr1, *out_ptr2;cudaMalloc((void**)out_ptr1, image_size * 3 * sizeof(uint8_t)); // 三通道cudaMalloc((void**)out_ptr2, image_size * 3 * sizeof(uint8_t)); // 三通道NppiSize in_size;in_size.width image_width;in_size.height image_height;NppiRect rc;rc.x 0;rc.y 0;rc.width image_width;rc.height image_height;int mask_size 10;cv::Mat mat_mask cv::Mat::ones(mask_size, mask_size, CV_8UC1);uint8_t *mask;cudaMalloc((void**)mask, mask_size * mask_size * sizeof(uint8_t));cudaMemcpy(mask, mat_mask.data, mask_size * mask_size * sizeof(uint8_t), cudaMemcpyHostToDevice);cv::Mat out_image cv::Mat::zeros(image_height, image_width, CV_8UC3);NppStatus status;NppiSize npp_mask_size;npp_mask_size.width mask_size;npp_mask_size.height mask_size;NppiPoint pt;pt.x 0;pt.y 0;// nppiDilate_8u_C3R status nppiDilate_8u_C3R(in_image, image_width * 3, out_ptr1, image_width * 3, in_size, mask, npp_mask_size, pt);if (status ! NPP_SUCCESS) {std::cout [GPU] ERROR nppiDilate_8u_C3R failed, status status std::endl;return false;}cudaMemcpy(out_image.data, out_ptr1, image_size * 3, cudaMemcpyDeviceToHost);cv::imwrite(directory dilate.jpg, out_image);// nppiDilateBorder_8u_C3R NppiPoint src_pt;src_pt.x 100;src_pt.y 100;status nppiDilateBorder_8u_C3R(in_image, image_width * 3, in_size, src_pt, out_ptr2, image_width * 3, in_size, mask, npp_mask_size, pt, NPP_BORDER_REPLICATE);if (status ! NPP_SUCCESS) {std::cout [GPU] ERROR nppiDilateBorder_8u_C3R failed, status status std::endl;return false;}cudaMemcpy(out_image.data, out_ptr2, image_size * 3, cudaMemcpyDeviceToHost);cv::imwrite(directory dilate_border.jpg, out_image);// freeCUDA_FREE(in_image)CUDA_FREE(out_ptr1)CUDA_FREE(out_ptr2) }make cmake_minimum_required(VERSION 3.20) project(test)find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS})find_package(CUDA REQUIRED) include_directories(${CUDA_INCLUDE_DIRS}) file(GLOB CUDA_LIBS /usr/local/cuda/lib64/*.so)add_executable(test test.cpp) target_link_libraries(test${OpenCV_LIBS}${CUDA_LIBS} )result 注意 nppiDilateBorder_8u_C3R 仅支持border的模式为 NPP_BORDER_REPLICATE其他模式会报错错误码为-9999。 Erode 腐蚀操作 NppStatus nppiErode_8u_C3R(const Npp8u *pSrc,Npp32s nSrcStep,Npp8u *pDst,Npp32s nDstStep,NppiSize oSizeROI,const Npp8u *pMask,NppiSize oMaskSize,NppiPoint oAnchor); NppStatus nppiErodeBorder_8u_C3R(const Npp8u *pSrc,Npp32s nSrcStep,NppiSize oSrcSize,NppiPoint oSrcOffset,Npp8u *pDst,Npp32s nDstStep,NppiSize oSizeROI,const Npp8u *pMask,NppiSize oMaskSize,NppiPoint oAnchor,NppiBorderType eBorderType); // 固定大小的Erode NppStatus nppiErode3x3_8u_C3R(const Npp8u *pSrc,Npp32s nSrcStep,Npp8u *pDst,Npp32s nDstStep,NppiSize oSizeROI); // nppiErode3x3Border_8u_C3R 不详细介绍了再此使用上一个实验膨胀之后的图像作为腐蚀的输入。 code #include iostream #include cuda_runtime.h #include npp.h #include opencv2/opencv.hpp#define CUDA_FREE(ptr) { if (ptr ! nullptr) { cudaFree(ptr); ptr nullptr; } }int main() {std::string directory ../;cv::Mat image_dog cv::imread(directory dilate.jpg);int image_width image_dog.cols;int image_height image_dog.rows;int image_size image_width * image_height;// device memory // inputuint8_t *in_image;cudaMalloc((void**)in_image, image_size * 3 * sizeof(uint8_t));cudaMemcpy(in_image, image_dog.data, image_size * 3 * sizeof(uint8_t), cudaMemcpyHostToDevice);// outputuint8_t *out_ptr1, *out_ptr2;cudaMalloc((void**)out_ptr1, image_size * 3 * sizeof(uint8_t)); // 三通道cudaMalloc((void**)out_ptr2, image_size * 3 * sizeof(uint8_t)); // 三通道NppiSize in_size;in_size.width image_width;in_size.height image_height;NppiRect rc;rc.x 0;rc.y 0;rc.width image_width;rc.height image_height;int mask_size 10;cv::Mat mat_mask cv::Mat::ones(mask_size, mask_size, CV_8UC1);uint8_t *mask;cudaMalloc((void**)mask, mask_size * mask_size * sizeof(uint8_t));cudaMemcpy(mask, mat_mask.data, mask_size * mask_size * sizeof(uint8_t), cudaMemcpyHostToDevice);cv::Mat out_image cv::Mat::zeros(image_height, image_width, CV_8UC3);NppStatus status;NppiSize npp_mask_size;npp_mask_size.width mask_size;npp_mask_size.height mask_size;NppiPoint pt;pt.x 0;pt.y 0;// nppiErode_8u_C3R status nppiErode_8u_C3R(in_image, image_width * 3, out_ptr1, image_width * 3, in_size, mask, npp_mask_size, pt);if (status ! NPP_SUCCESS) {std::cout [GPU] ERROR nppiErode_8u_C3R failed, status status std::endl;return false;}cudaMemcpy(out_image.data, out_ptr1, image_size * 3, cudaMemcpyDeviceToHost);cv::imwrite(directory erode.jpg, out_image);// nppiErodeBorder_8u_C3R NppiPoint src_pt;src_pt.x 100;src_pt.y 100;status nppiErodeBorder_8u_C3R(in_image, image_width * 3, in_size, src_pt, out_ptr2, image_width * 3, in_size, mask, npp_mask_size, pt, NPP_BORDER_REPLICATE);if (status ! NPP_SUCCESS) {std::cout [GPU] ERROR nppiErodeBorder_8u_C3R failed, status status std::endl;return false;}cudaMemcpy(out_image.data, out_ptr2, image_size * 3, cudaMemcpyDeviceToHost);cv::imwrite(directory erode_border.jpg, out_image);// freeCUDA_FREE(in_image)CUDA_FREE(out_ptr1)CUDA_FREE(out_ptr2) }make cmake_minimum_required(VERSION 3.20) project(test)find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS})find_package(CUDA REQUIRED) include_directories(${CUDA_INCLUDE_DIRS}) file(GLOB CUDA_LIBS /usr/local/cuda/lib64/*.so)add_executable(test test.cpp) target_link_libraries(test${OpenCV_LIBS}${CUDA_LIBS} )result 注意点 nppiErodeBorder_8u_C3R 仅支持border的模式为 NPP_BORDER_REPLICATE其他模式会报错错误码为-9999。 ComplexImageMorphology 复杂图像形态学暂时不做介绍后续视情况而定 链接
http://www.w-s-a.com/news/586198/

相关文章:

  • 企业信息管理系统免费seo优化个人博客
  • 做任务的设计网站泰州哪里做网站
  • 什么网站可以做设计赚钱吗南京十大软件公司排名
  • 网站开发时间进度北京有哪些著名网站
  • 深圳比较好的设计网站公司自己的网站到期域名如何续费
  • 温州做网站哪儿新云网站模版
  • 网站开发 视频存在哪检察院前期网站建设
  • 备案中的网站信息怎么填如何做分享赚钱的网站
  • 网站行程表怎么做注册公司费用要多少
  • 常见电子商务网站基本模式南山网站公司定
  • 网站搭建代码网站里面送礼物要钱怎么做代码
  • 大学英文网站建设举措wordpress 学院 模板
  • 爱 做 网站吗php网站作业模版
  • wordpress代码乱吗台州做网站seo的
  • 做ptt网站wordpress中文企业网站
  • 深圳雨棚制作深圳 网站优化公司排名
  • 深圳优秀网站建设价格wordpress没人用
  • 国企网站建设需要注意沈阳招标信息网
  • 东莞360推广的网站是谁做的上海网络推广产品
  • 网站可以换主机吗中国十大网站建设企业
  • 怎么做盗版小说网站官网做有下拉列表的网站的图片
  • 邢台网站建设电话网站界面类型
  • 网站制作合同模板做一个网站能挣多少钱
  • 汶上1500元网站建设互联网高端官网
  • 广州做公司网站网站开发培训机构
  • 网站建设与维护 课件网页版qq安全中心登录入口
  • 做三个月网站广告收入dw如何制作网页
  • ...课程网站建设简介工信部 网站备案查询
  • 网站代码建设 实例企业网站建设大概的费用
  • 制作网站软件排行榜过年做啥网站致富