有关radon变换的算法的详情,写在这里:http://blog.csdn.net/celte/article/details/9826505
用Cuda实现radon变换,可以类似C语言程序操作。。。
这里可以简单的使用一个block,每个block包含numAngles个thread(在下面的代码中是181个thread)
#include <stdio.h>
#include "math.h"
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
__global__ static void radon_cuda_core(float *gpuOutput,float *gpuInput,float *gpuAngles,int M,int N,int xOrgin,int yOrgin,int numAngles,int rFirst,int rSize)
{
const int tid=threadIdx.x;
float angle=gpuAngles[tid];
float *pOutput=gpuOutput+tid*rSize;
float sine=sin(angle);
float cosine=cos(angle);
int m,n;