Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #pragma once
00022
00023 #include "image.h"
00024 #include "misc.h"
00025
00026 namespace distance_transform
00027 {
00028
00029
00030 template <class T>
00031 void min_max(image<T> *im, T *ret_min, T *ret_max) {
00032 int width = im->width();
00033 int height = im->height();
00034
00035 T min = imRef(im, 0, 0);
00036 T max = imRef(im, 0, 0);
00037 for (int y = 0; y < height; y++) {
00038 for (int x = 0; x < width; x++) {
00039 T val = imRef(im, x, y);
00040 if (min > val)
00041 min = val;
00042 if (max < val)
00043 max = val;
00044 }
00045 }
00046
00047 *ret_min = min;
00048 *ret_max = max;
00049 }
00050
00051
00052 template <class T>
00053 image<uchar> *threshold(image<T> *src, int t) {
00054 int width = src->width();
00055 int height = src->height();
00056 image<uchar> *dst = new image<uchar>(width, height);
00057
00058 for (int y = 0; y < height; y++) {
00059 for (int x = 0; x < width; x++) {
00060 imRef(dst, x, y) = (imRef(src, x, y) >= t);
00061 }
00062 }
00063
00064 return dst;
00065 }
00066
00067 }