请问opencv的GPU模块里,与GpuMat挂钩的PtrStep 和 PtrStepSz两个数据结构有啥区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问opencv的GPU模块里,与GpuMat挂钩的PtrStep 和 PtrStepSz两个数据结构有啥区别?相关的知识,希望对你有一定的参考价值。

我看源代码貌似PtrStepSz继承于PtrStep,但是关于为什么要单独写一个子结构不太明白。

参考技术A func mergeSort(r []int) []int
length := len(r)
if length <= 1
return r

num := length / 2
left := mergeSort(r[:num])
right := mergeSort(r[num:])
return merge(left, right)

func merge(left, right []int) (result []int)
l, r := 0, 0
for l < len(left) && r < len(right)
if left[l] < right[r]
result = append(result, left[l])
l++
else
result = append(result, right[r])
r++


result = append(result, left[l:]...)
result = append(result, right[r:]...)
return

GpuMat ROI


  1. 在引用GpuMat数据的ROI时,需要保证该数据在Gpu 内存中存储是连续的。使用gpu::createContinuous创建连续空间。

  2. cuda::GpuMat dst_pyr_laplace_tmp(dst_pyr_laplace_gpu(rc)); 或者 cuda::GpuMat dst_pyr_laplace_tmp = dst_pyr_laplace_gpu(rc); // 备注:以上两种方式是浅拷贝,改变dst_pyr_laplace_tmp 内存数据,也相应改变dst_pyr_laplace_gpu对应的ROI内存数据
              

以上是关于请问opencv的GPU模块里,与GpuMat挂钩的PtrStep 和 PtrStepSz两个数据结构有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

gpumat 和 mat 错误

OpenCV和Cuda结合编程

GpuMat ROI

GpuMat ROI

提取一个连续的 OpenCV cuda::GpuMat?

OpenCV - 将 GpuMat 复制到 cuda 设备数据中