-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathImage.cuh
32 lines (24 loc) · 901 Bytes
/
Image.cuh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "Image.h"
#include "CUDAFunctions.cuh"
void Image::parallelConv(const double kernel[][3]) {
unsigned char* convData = (unsigned char*)malloc(sizeof(unsigned char) * size);
double* kern = new double [9];
for (int i = 0;i < 3;i++) {
for (int j = 0;j < 3;j++) {
kern[i * 3 + j] = kernel[i][j];
}
}
convolution(data, convData, kern, height, width, channels, size, 3);
data = convData;
}
void Image::parallelBlur(double strength) {
unsigned char* convData = (unsigned char*)malloc(sizeof(unsigned char) * size);
double* kern = new double[strength * strength];
for (int i = 0;i < strength;i++) {
for (int j = 0;j < strength;j++) {
kern[i * (int)strength + j] = 1 / (strength * strength);
}
}
convolution(data, convData, kern, height, width, channels, size, strength);
data = convData;
}