Welcome to the EyeBot  Version 7 - RPi1
A Controller For Various Hardware IO
imageProc.h
Go to the documentation of this file.
1 
17 #ifndef IMAGEPROC_H_
18 #define IMAGEPROC_H_
19 
20 #include "types.h"
21 
22 int IP_CAMWIDTH, IP_CAMHEIGHT, IP_CAMSIZE;
23 
25 #define IP_SUCCESS 1
26 
27 #define IP_FAILURE 0
28 
29 #define MAX_IMAGE_SIZE (820*620)
30 #define MAX_CONTOUR 100000
31 
35 typedef struct
36 {
37  int colorBlack;
38  int colorWhite;
39 } IPL_CONFIG;
40 
44 typedef struct
45 {
46  short x;
47  short y;
48 } IPL_POINT;
49 
53 typedef struct
54 {
55  double x;
56  double y;
57 } XYDISTANCE;
58 
59  int IPInitialised;
60 
61  int IPSetSize(int mode);
62 
63  int IPReadFile(char *filename, BYTE* img); // Read PNM file, fill/crop if req.; return 0 for color, 1 for gray image
64  int IPWriteFile(char *filename, BYTE* img); // Write color PNM file
65  int IPWriteFileGray(char *filename, BYTE* gray); // Write gray scale PGM file
66  int IPLaplace(BYTE* grayIn, BYTE* grayOut); // Laplace edge detection on gray image
67  int IPSobel(BYTE* grayIn, BYTE* grayOut); // Sobel edge detection on gray image
68  int IPCol2Gray(BYTE* imgIn, BYTE* grayOut); // Transfer color to gray image
69  int IPGray2Col(BYTE* imgIn, BYTE* colOut); // Transfer gray to color image
70 
71  //missing!!!
72  COLOR IPRGB2ColPixel(BYTE R, BYTE G, BYTE B); // RGB to color for pixel
73  int IPRGB2Col(BYTE* r, BYTE* g, BYTE* b, BYTE* imgOut); // Transform 3*gray to color image
74 
75  //missing!!!
76  int IPCol2HSIPixel(COLOR c, BYTE h, BYTE s, BYTE i); // RGB to HSI for pixel
77 
78  int IPCol2HSI(BYTE* img, float* h, float* s, float* i); // Transform RGB image to HSI image
79 
80  int IPOverlay(BYTE* c1, BYTE* c2, BYTE* cOut); // Overlay c2 onto c1, all color images
81  int IPOverlayGray(BYTE* g1, BYTE* g2, int rgb, BYTE* cOut); // Overlay gray image g2 onto g1, rgb (0=red, 1=green, 2=blue), cOut in color
82 
83 
84 
85 int Centroid(BYTE* Nucleus); //calculate the gravity center of the usan.
86 double Susan1(int t,BYTE* Nucleus); //Mask for susan corner detector.
87 int NonMaximum(BYTE* imagein,BYTE* imageout); //Mask for NonMaximum suppression.
88 int Susan(int t,BYTE* imagein,BYTE* MarkCorner);//Susan corner detector;
89 //t:the threshold between the value of pixels,general real image ------->t=25,low contrast image------->t=7;
90 void HornSchunk(BYTE* grayimage1,BYTE* grayimage2,int alpha2,int iters,BYTE* imageout);
91 float laplace2(float * td);
92 void IPmean(BYTE* grayIn,BYTE* grayOut);
93 void laplace_envir(float* imagein,float* imageout);
94 void Sobelx(BYTE* grayIn,BYTE* grayOut);
95 void Sobely(BYTE* grayIn,BYTE* grayOut);
96 void IPLOverLay(BYTE* imagein1,BYTE* imagein2,BYTE* imageout); //overlay two color images .
97 
98 
99 
100 /*
101  * Die global sichtbaren Funktionen der Image Processing Library
102  * Sie beginnen alle mit IPL_, um name clashes zu vermeiden.
103  */
104 
105 void IPL_init(IPL_CONFIG * config);
106 void IPL_laplace(BYTE * imageIn, BYTE * imageOut);
107 void IPL_sobel(BYTE * imageIn, BYTE * imageOut);
108 void IPL_mean(BYTE * imageIn, BYTE * imageOut);
109 void IPL_threshold(BYTE * imageIn, BYTE * imageOut, BYTE threshold);
110 void IPL_gray_stretch(BYTE * imageIn, BYTE * imageOut);
111 void IPL_gray_reduce(BYTE * imageIn, BYTE * imageOut, int numvals);
112 void IPL_gen_histogram (BYTE * imageIn, int *histogram);
113 void IPL_equal_histogram (BYTE * imageIn, BYTE * imageOut, int *histogram);
114 void IPL_erosion (BYTE * imageIn, BYTE * imageOut, char * struc);
115 void IPL_dilation (BYTE * imageIn, BYTE * imageOut, char * struc);
116 void IPL_open (BYTE * imageIn, BYTE * imageOut, char * struc);
117 void IPL_close (BYTE * imageIn, BYTE * imageOut, char * struc);
118 void IPL_fill (BYTE * imageIn, BYTE * imageOut, int x, int y, char * struc);
119 void IPL_connected(BYTE * imageIn, BYTE * imageOut, int x, int y, char * struc);
120 void IPL_boundary(BYTE * imageIn, BYTE * imageOut, char * struc);
121 void IPL_skeleton(BYTE * imageIn, BYTE * imageOut, char * struc);
122 void IPL_identity(BYTE * imageIn, BYTE * imageOut);
123 int IPL_contour(BYTE * imageIn, BYTE * imageOut, IPL_POINT * result, BYTE threshold);
124 void IPL_median(BYTE * imageIn, BYTE * imageOut);
125 void IPL_min(BYTE * imageIn, BYTE * imageOut);
126 void IPL_max(BYTE * imageIn, BYTE * imageOut);
127 void IPL_negation(BYTE * imageIn, BYTE * imageOut);
128 void IPL_difference(BYTE * image1, BYTE * image2, BYTE * imageOut);
129 void IPL_noise(BYTE * imageIn, BYTE * imageOut, double noise);
130 int IPL_count(BYTE * imageIn, BYTE * imageOut, BYTE val);
131 int IPL_count_nobound(BYTE * imageIn, BYTE * imageOut, BYTE val);
132 void IPL_corner(BYTE * imageIn, BYTE * imageOut);
133 void IPL_and(BYTE *imageIn1, BYTE * imageIn2, BYTE *imageOut);
134 void IPL_or(BYTE *imageIn1, BYTE * imageIn2, BYTE *imageOut);
135 int IPL_equal(BYTE *imageIn1, BYTE *imageIn2);
136 int IPL_equal_nobound(BYTE *image1, BYTE *image2);
137 void IPL_showxy(BYTE *imageIn, BYTE *imageOut, int x, int y);
138 void IPL_dither(BYTE *imageIn, BYTE *imageOut);
139 void IPL_overlay(BYTE *imageIn1, BYTE *imageIn2, BYTE *imageOut, BYTE gray_val);
140 void IPL_region_growing(BYTE *imageIn, BYTE *imageOut, int thresh);
141 int IPL_FindCircles(BYTE * imageIn, BYTE * imageOut, XYDISTANCE * result);
142 
143 #endif
Structure defining the IP configs.
Definition: imageProc.h:35
Defines types used for the EyeBot 7.
Structure defining an IP point.
Definition: imageProc.h:44
Structure defining a IP distance.
Definition: imageProc.h:53
int IPSetSize(int mode)
Sets the mode for the image processing.
Definition: imageProc.c:31