- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 OpenCV 加载一个 .png
文件,我想使用 thrust 库提取它的蓝色强度值。
我的代码是这样的:
IplImage
指针加载图像 thrust::device_vector
现在我在从设备 vector 中提取蓝色强度值时遇到了问题。
FetchBlueValues
。代码:
#define ImageWidth 14
#define ImageHeight 10
thrust::device_vector<int> BinaryImage(ImageWidth*ImageHeight);
thrust::device_vector<int> ImageVector(ImageWidth*ImageHeight*3);
struct FetchBlueValues
{
__host__ __device__ void operator() ()
{
int index = 0 ;
for(int i=0; i<= ImageHeight*ImageWidth*3 ; i = i+3)
{
BinaryImage[index]= ImageVector[i];
index++;
}
}
};
void main()
{
src = cvLoadImage("../Input/test.png", CV_LOAD_IMAGE_COLOR);
unsigned char *raw_ptr,*out_ptr;
raw_ptr = (unsigned char*) src->imageData;
thrust::device_ptr<unsigned char> dev_ptr = thrust::device_malloc<unsigned char>(ImageHeight*src->widthStep);
thrust::copy(raw_ptr,raw_ptr+(src->widthStep*ImageHeight),dev_ptr);
int index=0;
for(int j=0;j<ImageHeight;j++)
{
for(int i=0;i<ImageWidth;i++)
{
ImageVector[index] = (int) dev_ptr[ (j*src->widthStep) + (i*src->nChannels) + 0 ];
ImageVector[index+1] = (int) dev_ptr[ (j*src->widthStep) + (i*src->nChannels) + 1 ];
ImageVector[index+2] = (int) dev_ptr[ (j*src->widthStep) + (i*src->nChannels) + 2 ];
index +=3 ;
}
}
}
最佳答案
由于图像以像素格式存储,并且每个像素都包含不同的颜色,因此在访问每个像素的各个颜色分量时有一个自然的“步幅”。在这种情况下,一个像素的颜色分量似乎存储在每个像素三个连续的 int
数量中,因此给定颜色分量的访问步幅为三个。
涵盖了跨范围访问迭代器方法的示例 here .
关于在 thrust 中调用用户定义的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16793659/
以下 CUDA Thrust 程序崩溃: #include #include int main(void) { thrust::device_vector vec; for (int i(
我使用 cuda 内核对推力 vector 执行 S 形激活: thrust::device_vector output = input; float * output_ptr = thrust::r
我一直在尝试实现一些需要在 thrust::complexes 上调用 reduce 的代码,编译器向我发出错误消息: cannot pass an argument with a user-prov
我是 CUDA 的新手,而且很吃力。当提供 counting_iterator 时,我似乎无法让 thrust::for_each 算法工作。这是我的简单仿函数: struct print_Funct
我实际上正在学习CUDA和thrust,我正在尝试用.cpp做一个项目,。 hpp 文件和 .cu, .cuh 文件。因此,我做了第一个小实现(见下面的代码),但是我有一个编译错误。这是 output
我想覆盖低级 CUDA 设备内存分配器(实现为 thrust::system::cuda::detail::malloc()),以便它使用自定义分配器而不是直接调用 cudaMalloc()在主机 (
当我在main函数中使用thrust::device_vector时,可以正确的传递给内核函数,代码如下: thrust::device_vector device_a(2); thrust::h
我在 CUDA 中使用这种 vector 方法的 vector 方法,因为我仍然习惯于 Matlab 和 Python 风格的编程环境。我能够从设备 vector 中的主机端提取数据,但现在我不确定如
我正在尝试使用 thrust::raw_pointer_cast 转换原始指针以捕获仿函数中的输出。我尝试了多种方法来将指针传递给 float ,但不断出现内存冲突和两个智能感知错误 thrust::
gather与scatter正好相反: scatter是顺序输入根据map确定撒点输出位置。 #include #include #include ... // mark even indice
我是 Thrust 的新手,有件事我不明白。 Thrust 是异步还是同步? 如果我编写以下代码,所花费的时间不是0。但在其他标签中,其他用户报告的结果为0。真相是什么? clock_t start,
我的编译器 (PGI) 不支持 #pragma once 但是我想包含的库(推力)使用它们。 这个问题有解决办法吗? 最佳答案 您可以使用guardonce将 #pragma Once 语句转换为标准
我的设备上有两个整数数组 dmap 和 dflag相同的长度我用推力设备指针 dmapt 和dflagt dmap 数组中有一些值为 -1 的元素。我想要删除这些 -1 和相应的值dflag 数组。
Thrust 能够对编码器隐藏各种细节,并且声称 Thrust 会根据系统规范在一定程度上设置参数。 Thrust 如何选择最佳参数化,以及如何处理不同机器上的各种代码? Thrust 实现这种通用库
我在当前项目中使用了 Thrust,所以我不必写 device_vector自己抽象或(分段)扫描内核。 到目前为止,我已经使用推力抽象完成了我的所有工作,但是对于简单的内核或不容易转换为 for_e
我想做这样的事情: BaseFunctor* f = new MyFunctor(); thrust::transform(it1,it2,MyFunctor); 目标是让用户能够传递不同的仿函数(具
当我尝试实现任何仿函数时,我得到了不好的结果。例如,我尝试了一个类似于 thrust::negate 的否定仿函数下面是一个示例代码,它使用内置的否定仿函数产生了良好的结果: int data[10]
我正在使用 OpenCV 加载一个 .png 文件,我想使用 thrust 库提取它的蓝色强度值。 我的代码是这样的: 使用 OpenCV IplImage 指针加载图像 将图像数据复制到thrust
我有一个奇怪的问题,我无法解决。它与 boost +推力代码相关联。 代码: #include #include #include #include #include #include #
是否可以使用 Thrust 创建一个 device_vectors 数组?我知道我不能创建一个 device_vector 的 device_vector,但是我将如何创建一个 device_vect
我是一名优秀的程序员,十分优秀!