メモリ周りの補助クラスを追加
[cuda.git] / binarize / binarize.cuh
1 /*
2         Copyright (C) 2012  fmaj7b5.info
3
4         This program is free software: you can redistribute it and/or modify
5         it under the terms of the GNU General Public License as published by
6         the Free Software Foundation, either version 2 of the License, or
7         (at your option) any later version.
8
9         This program is distributed in the hope that it will be useful,
10         but WITHOUT ANY WARRANTY; without even the implied warranty of
11         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12         GNU General Public License for more details.
13
14         You should have received a copy of the GNU General Public License
15         along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 */
17
18 #ifndef FM7b5_BINARIZE_CUH
19 #define FM7b5_BINARIZE_CUH
20
21 #include "binarize.h"
22 #include "MDView.cuh"
23
24 namespace FM7b5
25 {
26         template <class T, class U>
27         __global__ void
28         binarize(const MDView<T, 2> out, const MDView<U, 2> in, const size_t width, const size_t height, const uint8_t thres)
29         {
30                 const size_t w(blockDim.x * blockIdx.x + threadIdx.x);
31                 const size_t h(blockDim.y * blockIdx.y + threadIdx.y);
32
33                 if (w >= width || h >= height) {
34                         return;
35                 }
36
37                 out[h][w] = (in[h][w] < thres) ? 0 : 255;
38         }
39 }
40
41 #endif /* FM7b5_BINARIZE_CUH */