Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. __global__ void ApplyBlur(double *image_d1, double *kernel, double *output, int width, int height, int kernelSize, int totalThreads)
  2. {
  3. int id = blockDim.x * blockIdx.x + threadIdx.x;
  4. int filterHeight = kernelSize;
  5. int filterWidth = kernelSize;
  6. int newImageHeight = height-kernelSize+1;
  7. //int newImageHeight = height;
  8. int newImageWidth = width-kernelSize+1;
  9. int d,i,j,h,w;
  10.  
  11. int fromY = (newImageHeight / totalThreads)*id;
  12. int toY = id != totalThreads-1 ? fromY + (newImageHeight / totalThreads) : newImageHeight;
  13.  
  14. int fromX = (newImageWidth / totalThreads)*id;
  15. int toX = id != totalThreads-1 ? fromX + (newImageWidth / totalThreads) : newImageWidth;
  16.  
  17.  
  18. int numElements = sizeof(double) * 4 * newImageHeight * newImageWidth;
  19.  
  20. for (i=0; i<newImageHeight ; i++) {
  21. for (j=fromX ; j<toX ; j++) {
  22. for(int k=0; k<4; k++){
  23. output[i*newImageWidth*4 + j*4 + k] = 0;
  24. for (h=i ; h<i+filterHeight ; h++) {
  25. for (w=j ; w<j+filterWidth ; w++) {
  26. output[i*newImageWidth*4 + j*4 + k] += kernel[(h-i) * kernelSize + (w-j)]*image_d1[h*width*4 + w*4 + k];
  27. }
  28. }
  29. }
  30. }
  31. }
  32.  
  33. printf("");
  34. }
  35. ​```
  36.  
  37. I would really appreciate any help and thank you for taking the time to read my question.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement