f1402849
dmayerich
renewed commit
|
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
#include "cimg/cimg.h"
#include "rtsFunction3D.h"
#include "rtspoint3D.h"
using namespace cimg_library;
typedef point3D<unsigned char> RGB;
rtsFunction3D<RGB> rtsf_LoadTexture(const char* filename)
{
CImg<unsigned char> image(filename);
unsigned int max_x = image.dimx();
unsigned int max_y = image.dimy();
unsigned int max_z = image.dimz();
rtsFunction3D<RGB> bits(max_x, max_y, max_z);
unsigned int x, y, z;
for(x = 0; x<max_x; x++)
for(y = 0; y<max_y; y++)
for(z = 0; z<max_z; z++)
{
bits.xyz(x, max_y - y, z).x = image(x, y, z, 0);
bits.xyz(x, max_y - y, z).y = image(x, y, z, 1);
bits.xyz(x, max_y - y, z).z = image(x, y, z, 2);
}
return bits;
}
rtsFunction3D<unsigned char> rtsf_LoadGrayTexture(const char* filename)
{
CImg<unsigned char> image(filename);
//CImgDisplay main_disp(image);
//while(true);
unsigned int dim_x = image.dimx();
unsigned int dim_y = image.dimy();
unsigned int dim_z = image.dimz();
rtsFunction3D<unsigned char> bits(dim_x, dim_y, dim_z);
float r, g, b;
float greyscale;
float max_length = sqrt(3.0f);
unsigned int x, y, z;
for(x = 0; x<dim_x; x++)
for(y = 0; y<dim_y; y++)
for(z = 0; z<dim_z; z++)
{
if(image.dimv() == 3)
{
r = image(x, y, z, 0)/255.0f;
g = image(x, y, z, 1)/255.0f;
b = image(x, y, z, 2)/255.0f;
greyscale = 0.3*r + 0.59*g + 0.11*b;
}
else
greyscale = image(x, y, z, 0)/255.0f;
bits.xyz(x, dim_y - y - 1, z) = greyscale * 255;
}
return bits;
}
|