X-Git-Url: http://www.fmaj7b5.info/git?p=cuda.git;a=blobdiff_plain;f=binarize%2Fbinarize.cuh;h=e8b690e18346de8624b83fcb693eaa346e75b452;hp=0ea3dd7d8fc920b8b64890200985c00cc7b563bf;hb=869779783d0c06c34e02062ac7d23dac316e73a9;hpb=7b77a912a4a1202f677ae9dbff672758e2b945e4 diff --git a/binarize/binarize.cuh b/binarize/binarize.cuh index 0ea3dd7..e8b690e 100644 --- a/binarize/binarize.cuh +++ b/binarize/binarize.cuh @@ -19,10 +19,23 @@ #define FM7b5_BINARIZE_CUH #include "binarize.h" +#include "MDView.cuh" namespace FM7b5 { - __global__ void binarize(uint8_t* out, const size_t out_pitch, const uint8_t* in, const size_t in_pitch, const size_t width, const size_t height, const uint8_t thres = 128); + template + __global__ void + binarize(const MDView out, const MDView in, const size_t width, const size_t height, const uint8_t thres) + { + const size_t w(blockDim.x * blockIdx.x + threadIdx.x); + const size_t h(blockDim.y * blockIdx.y + threadIdx.y); + + if (w >= width || h >= height) { + return; + } + + out[h][w] = (in[h][w] < thres) ? 0 : 255; + } } #endif /* FM7b5_BINARIZE_CUH */