-
Notifications
You must be signed in to change notification settings - Fork 0
/
imutil.h
executable file
·48 lines (38 loc) · 927 Bytes
/
imutil.h
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/* some image utilities */
#ifndef IMUTIL_H
#define IMUTIL_H
#include "image.h"
#include "misc.h"
/* compute minimum and maximum value in an image */
template <class T>
void min_max(image<T> *im, T *ret_min, T *ret_max) {
int width = im->width();
int height = im->height();
T min = imRef(im, 0, 0);
T max = imRef(im, 0, 0);
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
T val = imRef(im, x, y);
if (min > val)
min = val;
if (max < val)
max = val;
}
}
*ret_min = min;
*ret_max = max;
}
/* threshold image */
template <class T>
image<uchar> *threshold(image<T> *src, int t) {
int width = src->width();
int height = src->height();
image<uchar> *dst = new image<uchar>(width, height);
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
imRef(dst, x, y) = (imRef(src, x, y) >= t);
}
}
return dst;
}
#endif