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

关于建设工程招标类的公共网站企业怎么做好网站优化

关于建设工程招标类的公共网站,企业怎么做好网站优化,上海做网站品牌公司有哪些,英雄联盟网站源码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.dnsts.com.cn/news/184694.html

相关文章:

  • 如何做简易网站天津宏宇网站建设
  • 做国内学历公证的网站网络推广运营主要做什么
  • 做网站前端后台wordpress 已登录用户登录
  • wordpress去掉版权青岛网站推广优化
  • 哪个视频网站做视频最赚钱的温岭建设网站
  • 用tornado做网站wordpress图片打开速度慢
  • 站长统计app软件下载2021网站当前位置怎么做
  • 点评网站模板企业建设网页
  • 快速的网站开发长沙做暑假实践活动网站
  • 专门做外国的网站吗sae网站备案
  • 建设一个网站需要什么设备免费网站引导页
  • 北京丰台做网站wordpress黑镜主题2.0下载
  • 做网站 什么主题较好网站建设任职资格
  • 判断网站开发语言网站 技术
  • 怎样制作公司网站域名会跳转怎么进原网站
  • 驰业传媒网站建设tp3企业网站开发百度云
  • wordpress pdo百度seo关键词优化市场
  • 免费设计网站乔家孕事(限) 17模板网
  • wordpress装修套餐网站源码烟台哪个公司做网站好
  • 网站建设 部署与发布视频做机器人的网站
  • 做食品团购去那家网站好wordpress 单页面美化
  • 淘宝上做网站权重万网网站备案系统
  • 建设农村信息网站品牌注册类别
  • 外卖在家做咋上网站做彩票网站需要什么技术
  • 提供做网站公司有哪些上线了做网站怎么样
  • 山东省建设银行网站微信小商店开店流程
  • 网站建设的准备工作wordpress取消评论
  • 深圳安嘉建设有限公司网站广州网站建设懂你所需
  • 做游戏奖金不被发现网站广州网页制作培训
  • 保险购买网站简单ppt模板下载免费完整版