pike.git
/
src
/
modules
/
Image
/
orient.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/modules/Image/orient.c:1:
-
/* $Id: orient.c,v 1.
1
1998/02/15
14
:
54
:
14
hedda Exp $ */
+
/* $Id: orient.c,v 1.
2
1998/02/15
15
:
50
:
10
hedda Exp $ */
/* **! module Image **! note
-
**! $Id: orient.c,v 1.
1
1998/02/15
14
:
54
:
14
hedda Exp $
+
**! $Id: orient.c,v 1.
2
1998/02/15
15
:
50
:
10
hedda Exp $
**! class image */ #include "global.h" #include <math.h> #include <ctype.h> #include "stralloc.h" #include "global.h"
pike.git/src/modules/Image/orient.c:104:
o4img=(struct image*)get_storage(o4,image_program); push_int(THIS->xsize); push_int(THIS->ysize); o5=clone_object(image_program,2); o5img=(struct image*)get_storage(o5,image_program); #define A o1img #define B THIS
-
//Create image 1
-
for(x=1; x<A->xsize-1; x++)
-
for(y=1; y<A->ysize-1; y++)
-
{
-
#define CO r
-
A->img[x+y*B->xsize].CO=sqrt((sq((B->img[(x-1)+y*B->xsize].CO-B->
-
img[x+y*B->xsize].CO ))+
-
sq((B->img[x+y*B->xsize].CO-
-
B->img[(x+1)+y*B->xsize].CO ))
-
)/2.0);
+
-
#undef CO
-
#define CO g
-
A->img[x+y*B->xsize].CO=sqrt((sq((B->img[(x-1)+y*B->xsize].CO-B->
-
img[x+y*B->xsize].CO ))+
-
sq((B->img[x+y*B->xsize].CO-
-
B->img[(x+1)+y*B->xsize].CO ))
-
)/2.0);
+
-
#
undef CO
-
#
define CO
b
-
A->img[x+y*B->xsize].CO=sqrt((sq((B->img[(x-
1
)
+y
*B->xsize].CO-B->
-
img[x+y*B->xsize].CO ))+
-
sq((B->img[x+y*B->xsize].CO-
-
B->img[(
x+1
)
+y
*B->xsize].CO
))
+
#define
FOOBAR(
CO
,xd,yd)
\
+
A->img[x+y*B->xsize].CO=
\
+
sqrt((sq((B->img[(x-
xd
)
+(y-yd)
*B->xsize].CO-B->
\
+
img[x+y*B->xsize].CO ))+
\
+
sq((B->img[x+y*B->xsize].CO-
\
+
B->img[(
x+xd
)
+(y+yd)
*B->xsize].CO))
\
)/2.0);
-
#undef CO
+
-
+
//Create image 1
+
for(x=1; x<A->xsize-1; x++)
+
for(y=1; y<A->ysize-1; y++)
+
{
+
FOOBAR(r,1,0);
+
FOOBAR(g,1,0);
+
FOOBAR(b,1,0);
} #undef A #define A o2img //Create image 2 for(x=1; x<A->xsize-1; x++) for(y=1; y<A->ysize-1; y++) {
-
#define
CO
r
-
A->img[x+y*B->xsize].CO=sqrt
(
(sq((B->img[(x-
1
)+(y-
1)
*B->xsize].CO-B->
-
img[x+y*B->xsize].CO ))+
-
sq((B->img[x+y*B->xsize].CO-
-
B->img[(x+1)+(y+1)*B->xsize].CO ))
-
)/2.0)
;
-
-
#undef CO
-
#define CO g
-
A->img[x+y*B->xsize].CO=sqrt
(
(sq((B->img[(x-
1
)+(y-
1)
*B->xsize].CO-B->
-
img[x+y*B->xsize].CO ))+
-
sq((B->img[x+y*B->xsize].CO-
-
B->img[(x+1)+(y+1)*B->xsize].CO ))
-
)/2.0)
;
-
#undef
CO
-
#define
CO
b
-
A->img[x+y*B->xsize].CO=sqrt
(
(sq((B->img[(x-
1
)+(y-
1)
*B->xsize].CO-B->
-
img[x+y*B->xsize].CO ))+
-
sq((B->img[x+y*B->xsize].CO-
-
B->img[(x+1)+(y+1)*B->xsize].CO ))
-
)/2.0)
;
-
#undef CO
-
+
FOOBAR
(
r,
1
,
1)
;
+
FOOBAR
(g
,
1
,
1)
;
+
FOOBAR
(b
,
1
,
1);
} #undef A #define A o3img //Create image 3 for(x=1; x<A->xsize-1; x++) for(y=1; y<A->ysize-1; y++) {
-
#define
CO
r
-
A->img[x+y*B->xsize].CO=sqrt
(
(sq((B->img[x+(y-
1)
*B->xsize].CO-B->
-
img[x+y*B->xsize].CO ))+
-
sq((B->img[x+y*B->xsize].CO-
-
B->img[x+(y+1)*B->xsize].CO ))
-
)/2.0)
;
-
#undef
CO
-
#define
CO
g
-
A->img[x+y*B->xsize].CO=sqrt
(
(sq((B->img[x+(y-
1)
*B->xsize].CO-B->
-
img[x+y*B->xsize].CO ))+
-
sq((B->img[x+y*B->xsize].CO-
-
B->img[x+(y+1)*B->xsize].CO ))
-
)/2.0)
;
-
#undef
CO
-
#define
CO
b
-
A->img[x+y*B->xsize].CO=sqrt
(
(sq((B->img[x+(y-
1)
*B->xsize].CO-B->
-
img[x+y*B->xsize].CO ))+
-
sq((B->img[x+y*B->xsize].CO-
-
B->img[x+(y+1)*B->xsize].CO ))
-
)/2.0)
;
-
#undef CO
-
+
FOOBAR
(
r,0,
1)
;
+
FOOBAR
(
g,
0
,1
);
+
FOOBAR
(
b,
0
,
1);
}
-
+
#undef A #define A o4img //Create image 4 for(x=1; x<A->xsize-1; x++) for(y=1; y<A->ysize-1; y++) {
-
#define
CO
r
-
A->img[x+y*B->xsize].CO=sqrt
(
(sq((B
-
>img[(x-
1
)+(y+1)*B->xsize].CO-B->
-
img[x+y*B->xsize].CO ))+
-
sq((B->img[x+y*B->xsize].CO-
-
B->img[(x+1)+(y-
1)
*B->xsize].CO ))
-
)/2.0)
;
-
-
#undef CO
-
#define CO
g
-
A
-
>img[x+y*B->xsize].CO=sqrt((sq((B->img[(x-
1
)+(y+1)*B->xsize].CO-B->
-
img[x+y*B->xsize].CO ))+
-
sq((B->img[x+y*B->xsize].CO-
-
B->img[(x+1)+(y-
1)
*B->xsize].CO ))
-
)/2.0)
;
-
#undef
CO
-
#define
CO
b
-
A->img[x+y*B->xsize].CO=sqrt
(
(sq((B
-
>img[(x-
1
)+(y+1)*B->xsize].CO-B->
-
img[x+y*B->xsize].CO ))+
-
sq((B->img[x+y*B->xsize].CO-
-
B->img[(x+1)+(y-
1)
*B->xsize].CO ))
-
)/2.0)
;
-
-
#undef CO
-
+
FOOBAR
(
r,
-1
,
1);
+
FOOBAR(
g
,
-1
,
1);
+
FOOBAR
(
b,
-1
,
1);
} #undef A #define A o5img //Create image 5, the hsv-thing... for(x=1; x<A->xsize-1; x++) for(y=1; y<A->ysize-1; y++) { //Första färg, sista mörkhet