Xmipp  v3.23.11-Nereus
python_image.h
Go to the documentation of this file.
1 /***************************************************************************
2  *
3  * Authors: J.M. De la Rosa Trevin (jmdelarosa@cnb.csic.es)
4  * Roberto Marabini (roberto@cnb.csic.es)
5  *
6  * Unidad de Bioinformatica of Centro Nacional de Biotecnologia , CSIC
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
21  * 02111-1307 USA
22  *
23  * All comments concerning this program package may be sent to the
24  * e-mail address 'xmipp@cnb.csic.es'
25  ***************************************************************************/
26 
27 #ifndef _PYTHON_IMAGE_H
28 #define _PYTHON_IMAGE_H
29 
30 #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION // this code is NumPy 1.8 compliant (i.e. we don't need API deprecated in 1.7)
31 
32 #include "Python.h"
33 #include "python_metadata.h"
34 #include <numpy/ndarraytypes.h>
35 #include <numpy/ndarrayobject.h>
36 
37 /***************************************************************/
38 /* Image */
39 /**************************************************************/
40 
41 #define Image_Check(v) (((v)->ob_type == &ImageType))
42 #define Image_Value(v) ((*((ImageObject*)(v))->image))
43 
44 /*Image Object*/
45 typedef struct
46 {
47  PyObject_HEAD
49 }
51 
52 #define ImageObject_New() (ImageObject*)malloc(sizeof(ImageObject))
53 
54 /* Destructor */
55 void Image_dealloc(ImageObject* self);
56 
57 /* Constructor */
58 PyObject *
59 Image_new(PyTypeObject *type, PyObject *args, PyObject *kwargs);
60 
61 /* Image string representation */
62 PyObject *
63 Image_repr(PyObject * obj);
64 
65 /* Image compare function */
66 int
67 Image_compare(PyObject * obj, PyObject * obj2);
68 
69 
70 /* Compare two images up to a precision */
71 PyObject *
72 Image_equal(PyObject *obj, PyObject *args, PyObject *kwargs);
73 
74 /* write */
75 PyObject *
76 Image_write(PyObject *obj, PyObject *args, PyObject *kwargs);
77 
78 
79 /* read */
80 PyObject *
81 Image_read(PyObject *obj, PyObject *args, PyObject *kwargs);
82 
83 /* read preview*/
84 PyObject *
85 Image_readPreview(PyObject *obj, PyObject *args, PyObject *kwargs);
86 
87 /* read preview, downsample in Fourier*/
88 PyObject *
89 Image_readPreviewSmooth(PyObject *obj, PyObject *args, PyObject *kwargs);
90 
91 /* readApplyGeo */
92 PyObject *
93 Image_readApplyGeo(PyObject *obj, PyObject *args, PyObject *kwargs);
94 
95 PyObject *
96 Image_applyGeo(PyObject *obj, PyObject *args, PyObject *kwargs);
97 
98 NPY_TYPES datatype2NpyType(DataType dt);
99 
100 DataType npyType2Datatype(int npy);
101 
102 /* getData */
103 PyObject *
104 Image_getData(PyObject *obj, PyObject *args, PyObject *kwargs);
105 
106 /* setData */
107 PyObject *
108 Image_setData(PyObject *obj, PyObject *args, PyObject *kwargs);
109 
110 /* getPixel */
111 PyObject *
112 Image_getPixel(PyObject *obj, PyObject *args, PyObject *kwargs);
113 
114 /* setPixel */
115 PyObject *
116 Image_setPixel(PyObject *obj, PyObject *args, PyObject *kwargs);
117 
118 /* initConstant */
119 PyObject *
120 Image_initConstant(PyObject *obj, PyObject *args, PyObject *kwargs);
121 
122 /* mirrorY */
123 PyObject *
124 Image_mirrorY(PyObject *obj, PyObject *args, PyObject *kwargs);
125 
126 /* applyTransforMatScipion */
127 PyObject *
128 Image_applyTransforMatScipion(PyObject *obj, PyObject *args, PyObject *kwargs);
129 
130 /* initRandom */
131 PyObject *
132 Image_initRandom(PyObject *obj, PyObject *args, PyObject *kwargs);
133 
134 /* Resize Image */
135 PyObject *
136 Image_resize(PyObject *obj, PyObject *args, PyObject *kwargs);
137 
138 /* Scale Image */
139 PyObject *
140 Image_scale(PyObject *obj, PyObject *args, PyObject *kwargs);
141 
142 /* Reslice volume */
143 PyObject *
144 Image_reslice(PyObject *obj, PyObject *args, PyObject *kwargs);
145 
146 /* Patch with other image */
147 PyObject *
148 Image_patch(PyObject *obj, PyObject *args, PyObject *kwargs);
149 
150 /* Get Data Type */
151 PyObject *
152 Image_getDataType(PyObject *obj, PyObject *args, PyObject *kwargs);
153 
154 /* Set Data Type */
155 PyObject *
156 Image_setDataType(PyObject *obj, PyObject *args, PyObject *kwargs);
157 
158 /* Set Data Type */
159 PyObject *
160 Image_convert2DataType(PyObject *obj, PyObject *args, PyObject *kwargs);
161 
162 /* Return image dimensions as a tuple */
163 PyObject *
164 Image_getDimensions(PyObject *obj, PyObject *args, PyObject *kwargs);
165 
166 /* Return image dimensions as a tuple */
167 PyObject *
168 Image_resetOrigin(PyObject *obj, PyObject *args, PyObject *kwargs);
169 
170 /* Return image dimensions as a tuple */
171 PyObject *
172 Image_getEulerAngles(PyObject *obj, PyObject *args, PyObject *kwargs);
173 
174 /* Return value from MainHeader*/
175 PyObject *
176 Image_getMainHeaderValue(PyObject *obj, PyObject *args, PyObject *kwargs);
177 
178 /* Set value to MainHeader*/
179 PyObject *
180 Image_setMainHeaderValue(PyObject *obj, PyObject *args, PyObject *kwargs);
181 
182 /* Return value from Header, now using only the first image*/
183 PyObject *
184 Image_getHeaderValue(PyObject *obj, PyObject *args, PyObject *kwargs);
185 
186 /* Set value to Header, now using only the first image*/
187 PyObject *
188 Image_setHeaderValue(PyObject *obj, PyObject *args, PyObject *kwargs);
189 
190 /* Return image dimensions as a tuple */
191 PyObject *
192 Image_computeStats(PyObject *obj, PyObject *args, PyObject *kwargs);
193 
194 /* I1-adjusted(I2) */
195 PyObject *
196 Image_adjustAndSubtract(PyObject *obj, PyObject *args, PyObject *kwargs);
197 
198 PyObject *
199 Image_add(PyObject *obj1, PyObject *obj2);
200 PyObject *
201 Image_iadd(PyObject *obj1, PyObject *obj2);
202 PyObject *
203 Image_inplaceAdd(PyObject *self, PyObject *args, PyObject *kwargs);
204 
205 
206 PyObject *
207 Image_subtract(PyObject *obj1, PyObject *obj2);
208 PyObject *
209 Image_isubtract(PyObject *obj1, PyObject *obj2);
210 PyObject *
211 Image_inplaceSubtract(PyObject *self, PyObject *args, PyObject *kwargs);
212 
213 PyObject *
214 Image_multiply(PyObject *obj1, PyObject *obj2);
215 PyObject *
216 Image_imultiply(PyObject *obj1, PyObject *obj2);
217 PyObject *
218 Image_inplaceMultiply(PyObject *self, PyObject *args, PyObject *kwargs);
219 
220 PyObject *
221 Image_divide(PyObject *obj1, PyObject *obj2);
222 PyObject *
223 Image_idivide(PyObject *obj1, PyObject *obj2);
224 PyObject *
225 Image_inplaceDivide(PyObject *self, PyObject *args, PyObject *kwargs);
226 
227 
228 
229 
230 extern PyNumberMethods Image_NumberMethods;
231 extern PyMethodDef Image_methods[];
232 extern PyTypeObject ImageType;
233 
234 
235 #endif
PyObject_HEAD ImageGeneric * image
Definition: python_image.h:48
PyObject * Image_setData(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_inplaceDivide(PyObject *self, PyObject *args, PyObject *kwargs)
PyObject * Image_equal(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_setMainHeaderValue(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_divide(PyObject *obj1, PyObject *obj2)
PyObject * Image_setPixel(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_initConstant(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_add(PyObject *obj1, PyObject *obj2)
PyObject * Image_getDataType(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_getData(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_mirrorY(PyObject *obj, PyObject *args, PyObject *kwargs)
NPY_TYPES datatype2NpyType(DataType dt)
PyObject * Image_computeStats(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_readApplyGeo(PyObject *obj, PyObject *args, PyObject *kwargs)
PyNumberMethods Image_NumberMethods
PyObject * Image_idivide(PyObject *obj1, PyObject *obj2)
PyObject * Image_read(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_setDataType(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_patch(PyObject *obj, PyObject *args, PyObject *kwargs)
int Image_compare(PyObject *obj, PyObject *obj2)
PyObject * Image_applyTransforMatScipion(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_isubtract(PyObject *obj1, PyObject *obj2)
viol type
PyObject * Image_getPixel(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_getMainHeaderValue(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_inplaceAdd(PyObject *self, PyObject *args, PyObject *kwargs)
PyMethodDef Image_methods[]
PyObject * Image_readPreviewSmooth(PyObject *obj, PyObject *args, PyObject *kwargs)
void Image_dealloc(ImageObject *self)
PyObject * Image_subtract(PyObject *obj1, PyObject *obj2)
PyObject * Image_initRandom(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_scale(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_readPreview(PyObject *obj, PyObject *args, PyObject *kwargs)
DataType
PyObject * Image_setHeaderValue(PyObject *obj, PyObject *args, PyObject *kwargs)
PyTypeObject ImageType
PyObject * Image_write(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_convert2DataType(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_inplaceSubtract(PyObject *self, PyObject *args, PyObject *kwargs)
PyObject * Image_adjustAndSubtract(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_applyGeo(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_getHeaderValue(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_repr(PyObject *obj)
PyObject * Image_iadd(PyObject *obj1, PyObject *obj2)
PyObject * Image_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
DataType npyType2Datatype(int npy)
PyObject * Image_reslice(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_resize(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_getDimensions(PyObject *obj, PyObject *args, PyObject *kwargs)
void(* obj)()
PyObject * Image_resetOrigin(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_getEulerAngles(PyObject *obj, PyObject *args, PyObject *kwargs)
PyObject * Image_inplaceMultiply(PyObject *self, PyObject *args, PyObject *kwargs)
PyObject * Image_imultiply(PyObject *obj1, PyObject *obj2)
PyObject * Image_multiply(PyObject *obj1, PyObject *obj2)