opencv - 从 HWC 转换为 CHW 的 cudaMemcpy 图像数据

标签 opencv image-processing cuda

假设我们有一些 OpenCV 常用图像垫:

cv::Mat usual_image = cv::imread(...)

此图像在内存中存储为 HWC/NHWC 数组。

是否可以将此图像作为 CHW/NCHW(分离的 channel 阵列,在某种意义上)复制到 cuda 内存中而无需超高成本 cv::split?

仅用于可视化 HWC 和 CHW: Just for visualization

最佳答案

最快的方法是将图像原样复制到 GPU,然后 write a GPU kernel将数据分成 3 个缓冲区。

较慢的替代方法是使用 3 callscudaMemcpy2D 将数据从主机复制到设备,每个平面调用一次。

关于opencv - 从 HWC 转换为 CHW 的 cudaMemcpy 图像数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70529937/

相关文章:

c++ - 使用 LatentSVMDetector 从视频中检测对象

ios - 在 Swift iOS 中使用 OpenCV

使用 nvcc 编译 linux 内核

python - numbapro 中的 cuda 代码错误

c++ - 用opencv将灰度颜色替换为rgb颜色

c - 带 cuda c 的盒式过滤器

c++ - OpenCV 在不同线程上运行来自网络摄像头的视频

python - 如何在opencv-cv2(Pycharm和macOS)中解决 “process finished with exit code 139 (interrupted by signal 11: SIGSEGV)”?

c++ - 仿射变换(剪切)opencv c++

image-processing - 单个摄像机的运动重建