-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathKameraKamera.pde
More file actions
101 lines (88 loc) · 2.32 KB
/
KameraKamera.pde
File metadata and controls
101 lines (88 loc) · 2.32 KB
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import processing.video.*;
Capture kamera;
float[][] grid;
color[][] cgrid;
int f = 1;
int ff;
int gx = 320/f;
int gy = 240/f;
int kxm = 640;
int kym = 480;
float d = 6;
float der = 100;
boolean ort = true;
void setup() {
size(1600, 900, P3D);
grid = new float[gx][gy];
cgrid = new color[gx][gy];
kamera = new Capture(this, 640, 480);
kamera.start();
}
void draw() {
background(0);
camera(width/4.0, (height/8.0), (height/2.0) / tan(PI*30.0 / 180.0), width/2.0, height/2.0, 0, 0, 1, 0);
pointLight(255, 255, 255, width/2, -20, height/2);
ff = f * f;
if (kamera.available()) {
kamera.read();
kamera.loadPixels();
for (int i = 0; i < gx-1; i++) {
for (int j = 0; j < gy-1; j++) {
int kx = int(i * f * 2);
int ky = int(j * f * 2);
if (ort) {
float v = 0;
float _r = 0;
float _g = 0;
float _b = 0;
for (int ki = 0; ki < f; ki++) {
for (int kj = 0; kj < f; kj++) {
v += brightness(kamera.pixels[kx + ki + (ky + kj) * kxm]);
color c = kamera.pixels[kx + ky * kxm];
_r += red(c);
_g += green(c);
_b += blue(c);
}
}
v /= ff;
_r /= ff;
_g /= ff;
_b /= ff;
grid[i][j] = map(v, 0, 255, 0, der);
cgrid[i][j] = color(_r,_g,_b);
} else {
grid[i][j] = map(brightness(kamera.pixels[kx + ky * kxm]), 0, 255, 0, der);
cgrid[i][j] = kamera.pixels[kx + ky * kxm];
}
}
}
}
noStroke();
translate(width/2 - (gx * d) / 2, height/2 - (gy * d) / 2, 0);
for (int i = 0; i < gx-1; i++) {
for (int j = 0; j < gy-1; j++) {
// ilk üçgen
beginShape();
fill(cgrid[i+1][j]);
vertex(d * (i+1), d * j, grid[i+1][j]);
fill(cgrid[i][j]);
vertex(d * i, d * j, grid[i][j]);
fill(cgrid[i][j+1]);
vertex(d * i, d * (j + 1), grid[i][j+1]);
endShape();
// ikinci üçgen
beginShape();
fill(cgrid[i][j+1]);
vertex(d * i, d * (j + 1), grid[i][j+1]);
fill(cgrid[i+1][j+1]);
vertex(d * (i + 1), d * (j + 1), grid[i+1][j+1]);
fill(cgrid[i+1][j]);
vertex(d * (i+1), d * j, grid[i+1][j]);
endShape();
}
}
}
void keyPressed() {
ort = !ort;
println(ort);
}