1 | /* |
2 | // Copyright 2014 Intel Corporation All Rights Reserved. |
3 | // |
4 | // |
5 | // This software and the related documents are Intel copyrighted materials, and your use of them is governed by |
6 | // the express license under which they were provided to you ('License'). Unless the License provides otherwise, |
7 | // you may not use, modify, copy, publish, distribute, disclose or transmit this software or the related |
8 | // documents without Intel's prior written permission. |
9 | // This software and the related documents are provided as is, with no express or implied warranties, other than |
10 | // those that are expressly stated in the License. |
11 | // |
12 | */ |
13 | |
14 | #if !defined( __IPPICV_L_H__ ) |
15 | #define __IPPICV_L_H__ |
16 | |
17 | #ifdef __cplusplus |
18 | extern "C" { |
19 | #endif |
20 | |
21 | #include "ippicv_defs_l.h" |
22 | #include "ippicv_types_l.h" |
23 | #include "ippicv_redefs.h" |
24 | #include "ippversion.h" |
25 | |
26 | |
27 | /* ============================================================================= |
28 | ippCore |
29 | ============================================================================= */ |
30 | |
31 | |
32 | /* ///////////////////////////////////////////////////////////////////////////// |
33 | // Functions to allocate memory |
34 | ///////////////////////////////////////////////////////////////////////////// */ |
35 | /* ///////////////////////////////////////////////////////////////////////////// |
36 | // Name: ippMalloc_L |
37 | // Purpose: 64-byte aligned memory allocation |
38 | // Parameter: |
39 | // len number of bytes |
40 | // Returns: pointer to allocated memory |
41 | // |
42 | // Notes: the memory allocated by ippMalloc has to be free by ippFree |
43 | // function only. |
44 | */ |
45 | IPPAPI(void*, ippMalloc_L, (IppSizeL length)) |
46 | |
47 | |
48 | |
49 | /* ============================================================================= |
50 | ippVM |
51 | ============================================================================= */ |
52 | |
53 | |
54 | |
55 | |
56 | /* ============================================================================= |
57 | ippSP |
58 | ============================================================================= */ |
59 | |
60 | /* ///////////////////////////////////////////////////////////////////////////// |
61 | // Name: ippsMalloc*_L |
62 | // Purpose: 64-byte aligned memory allocation |
63 | // Parameter: |
64 | // len number of elements (according to their type) |
65 | // Returns: pointer to allocated memory |
66 | // |
67 | // Notes: the memory allocated by ippsMalloc has to be free by ippsFree |
68 | // function only. |
69 | */ |
70 | |
71 | IPPAPI(Ipp8u*, ippsMalloc_8u_L, (IppSizeL len)) |
72 | |
73 | |
74 | /* ============================================================================= |
75 | ippIP |
76 | ============================================================================= */ |
77 | |
78 | /* //////////////////////////////////////////////////////////////////////////// |
79 | // Name: ippiCopy..L |
80 | // |
81 | // Purpose: copy pixel values from the source image to the destination image |
82 | // |
83 | // |
84 | // Returns: |
85 | // ippStsNullPtrErr One of the pointers is NULL |
86 | // ippStsSizeErr roiSize has a field with zero or negative value |
87 | // ippStsNoErr OK |
88 | // |
89 | // Parameters: |
90 | // pSrc Pointer to the source image buffer |
91 | // srcStep Step in bytes through the source image buffer |
92 | // pDst Pointer to the destination image buffer |
93 | // dstStep Step in bytes through the destination image buffer |
94 | // roiSize Size of the ROI |
95 | // pMask Pointer to the mask image buffer |
96 | // maskStep Step in bytes through the mask image buffer |
97 | */ |
98 | |
99 | IPPAPI(IppStatus, ippiCopy_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL roiSize)) |
100 | |
101 | /* //////////////////////////////////////////////////////////////////////////// |
102 | // Name: ippiCopyReplicateBorder |
103 | // |
104 | // Purpose: Copies pixel values between two buffers and adds |
105 | // the replicated border pixels. |
106 | // |
107 | // Returns: |
108 | // ippStsNullPtrErr One of the pointers is NULL |
109 | // ippStsSizeErr 1). srcRoiSize or dstRoiSize has a field with negative or zero value |
110 | // 2). topBorderHeight or leftBorderWidth is less than zero |
111 | // 3). dstRoiSize.width < srcRoiSize.width + leftBorderWidth |
112 | // 4). dstRoiSize.height < srcRoiSize.height + topBorderHeight |
113 | // ippStsStepErr srcStep or dstStep is less than or equal to zero |
114 | // ippStsNoErr OK |
115 | // |
116 | // Parameters: |
117 | // pSrc Pointer to the source image buffer |
118 | // srcStep Step in bytes through the source image |
119 | // pDst Pointer to the destination image buffer |
120 | // dstStep Step in bytes through the destination image |
121 | // scrRoiSize Size of the source ROI in pixels |
122 | // dstRoiSize Size of the destination ROI in pixels |
123 | // topBorderHeight Height of the top border in pixels |
124 | // leftBorderWidth Width of the left border in pixels |
125 | */ |
126 | IPPAPI(IppStatus, ippiCopyReplicateBorder_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
127 | IPPAPI(IppStatus, ippiCopyReplicateBorder_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
128 | IPPAPI(IppStatus, ippiCopyReplicateBorder_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
129 | IPPAPI(IppStatus, ippiCopyReplicateBorder_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
130 | IPPAPI(IppStatus, ippiCopyReplicateBorder_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
131 | IPPAPI(IppStatus, ippiCopyReplicateBorder_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
132 | IPPAPI(IppStatus, ippiCopyReplicateBorder_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
133 | IPPAPI(IppStatus, ippiCopyReplicateBorder_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
134 | IPPAPI(IppStatus, ippiCopyReplicateBorder_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
135 | IPPAPI(IppStatus, ippiCopyReplicateBorder_32s_C1R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
136 | IPPAPI(IppStatus, ippiCopyReplicateBorder_32s_C3R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
137 | IPPAPI(IppStatus, ippiCopyReplicateBorder_32s_C4R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
138 | IPPAPI(IppStatus, ippiCopyReplicateBorder_32s_C1IR_L,(const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
139 | IPPAPI(IppStatus, ippiCopyReplicateBorder_32s_C3IR_L, (const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
140 | IPPAPI(IppStatus, ippiCopyReplicateBorder_32s_C4IR_L, (const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
141 | IPPAPI(IppStatus, ippiCopyReplicateBorder_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
142 | IPPAPI(IppStatus, ippiCopyReplicateBorder_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
143 | IPPAPI(IppStatus, ippiCopyReplicateBorder_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
144 | IPPAPI(IppStatus, ippiCopyReplicateBorder_32f_C1IR_L, (const Ipp32f* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
145 | IPPAPI(IppStatus, ippiCopyReplicateBorder_32f_C3IR_L, (const Ipp32f* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
146 | IPPAPI(IppStatus, ippiCopyReplicateBorder_32f_C4IR_L, (const Ipp32f* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
147 | IPPAPI(IppStatus, ippiCopyReplicateBorder_8u_C1IR_L, (const Ipp8u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
148 | IPPAPI(IppStatus, ippiCopyReplicateBorder_8u_C3IR_L, (const Ipp8u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
149 | IPPAPI(IppStatus, ippiCopyReplicateBorder_8u_C4IR_L, (const Ipp8u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
150 | IPPAPI(IppStatus, ippiCopyReplicateBorder_16u_C1IR_L, (const Ipp16u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
151 | IPPAPI(IppStatus, ippiCopyReplicateBorder_16u_C3IR_L, (const Ipp16u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
152 | IPPAPI(IppStatus, ippiCopyReplicateBorder_16u_C4IR_L, (const Ipp16u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
153 | IPPAPI(IppStatus, ippiCopyReplicateBorder_16s_C1IR_L, (const Ipp16s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
154 | IPPAPI(IppStatus, ippiCopyReplicateBorder_16s_C3IR_L, (const Ipp16s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
155 | IPPAPI(IppStatus, ippiCopyReplicateBorder_16s_C4IR_L, (const Ipp16s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
156 | |
157 | /* //////////////////////////////////////////////////////////////////////////// |
158 | // Name: ippiCopyWrapBorder |
159 | // |
160 | // Purpose: Copies pixel values between two buffers and adds the border pixels. |
161 | // |
162 | // Returns: |
163 | // ippStsNullPtrErr One of the pointers is NULL |
164 | // ippStsSizeErr 1). srcRoiSize or dstRoiSize has a field with negative or zero value |
165 | // 2). topBorderHeight or leftBorderWidth is less than zero |
166 | // 3). dstRoiSize.width < srcRoiSize.width + leftBorderWidth |
167 | // 4). dstRoiSize.height < srcRoiSize.height + topBorderHeight |
168 | // ippStsStepErr srcStep or dstStep is less than or equal to zero |
169 | // ippStsNoErr OK |
170 | // |
171 | // Parameters: |
172 | // pSrc Pointer to the source image buffer |
173 | // srcStep Step in bytes through the source image |
174 | // pDst Pointer to the destination image buffer |
175 | // dstStep Step in bytes through the destination image |
176 | // scrRoiSize Size of the source ROI in pixels |
177 | // dstRoiSize Size of the destination ROI in pixels |
178 | // topBorderHeight Height of the top border in pixels |
179 | // leftBorderWidth Width of the left border in pixels |
180 | */ |
181 | IPPAPI(IppStatus, ippiCopyWrapBorder_32s_C1R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
182 | IPPAPI(IppStatus, ippiCopyWrapBorder_32s_C1IR_L, (const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
183 | IPPAPI(IppStatus, ippiCopyWrapBorder_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
184 | IPPAPI(IppStatus, ippiCopyWrapBorder_32f_C1IR_L, (const Ipp32f* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
185 | |
186 | /* //////////////////////////////////////////////////////////////////////////// |
187 | // Name: ippiCopyConstBorder |
188 | // |
189 | // Purpose: Copies pixel values between two buffers and adds |
190 | // the border pixels with constant value. |
191 | // |
192 | // Returns: |
193 | // ippStsNullPtrErr One of the pointers is NULL |
194 | // ippStsSizeErr 1). srcRoiSize or dstRoiSize has a field with negative or zero value |
195 | // 2). topBorderHeight or leftBorderWidth is less than zero |
196 | // 3). dstRoiSize.width < srcRoiSize.width + leftBorderWidth |
197 | // 4). dstRoiSize.height < srcRoiSize.height + topBorderHeight |
198 | // ippStsStepErr srcStep or dstStep is less than or equal to zero |
199 | // ippStsNoErr OK |
200 | // |
201 | // Parameters: |
202 | // pSrc Pointer to the source image buffer |
203 | // srcStep Step in bytes through the source image |
204 | // pDst Pointer to the destination image buffer |
205 | // dstStep Step in bytes through the destination image |
206 | // srcRoiSize Size of the source ROI in pixels |
207 | // dstRoiSize Size of the destination ROI in pixels |
208 | // topBorderHeight Height of the top border in pixels |
209 | // leftBorderWidth Width of the left border in pixels |
210 | // value Constant value to assign to the border pixels |
211 | */ |
212 | IPPAPI(IppStatus, ippiCopyConstBorder_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, Ipp8u value)) |
213 | IPPAPI(IppStatus, ippiCopyConstBorder_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, const Ipp8u value[3])) |
214 | IPPAPI(IppStatus, ippiCopyConstBorder_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, const Ipp8u value[4])) |
215 | IPPAPI(IppStatus, ippiCopyConstBorder_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, Ipp16s value)) |
216 | IPPAPI(IppStatus, ippiCopyConstBorder_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, const Ipp16s value[3])) |
217 | IPPAPI(IppStatus, ippiCopyConstBorder_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, const Ipp16s value[4])) |
218 | IPPAPI(IppStatus, ippiCopyConstBorder_32s_C1R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, Ipp32s value)) |
219 | IPPAPI(IppStatus, ippiCopyConstBorder_32s_C3R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, const Ipp32s value[3])) |
220 | IPPAPI(IppStatus, ippiCopyConstBorder_32s_C4R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, const Ipp32s value[4])) |
221 | |
222 | IPPAPI(IppStatus, ippiCopyConstBorder_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, Ipp16u value)) |
223 | IPPAPI(IppStatus, ippiCopyConstBorder_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, const Ipp16u value[3])) |
224 | IPPAPI(IppStatus, ippiCopyConstBorder_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, const Ipp16u value[4])) |
225 | |
226 | IPPAPI(IppStatus, ippiCopyConstBorder_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, Ipp32f value)) |
227 | IPPAPI(IppStatus, ippiCopyConstBorder_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, const Ipp32f value[3])) |
228 | IPPAPI(IppStatus, ippiCopyConstBorder_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, const Ipp32f value[4])) |
229 | |
230 | |
231 | IPPAPI(IppStatus, ippiCopyConstBorder_8u_C1IR_L, (Ipp8u* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp8u value)) |
232 | IPPAPI(IppStatus, ippiCopyConstBorder_8u_C3IR_L, (Ipp8u* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp8u value[3])) |
233 | IPPAPI(IppStatus, ippiCopyConstBorder_8u_C4IR_L, (Ipp8u* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp8u value[4])) |
234 | |
235 | IPPAPI(IppStatus, ippiCopyConstBorder_16u_C1IR_L, (Ipp16u* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp16u value)) |
236 | IPPAPI(IppStatus, ippiCopyConstBorder_16u_C3IR_L, (Ipp16u* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp16u value[3])) |
237 | IPPAPI(IppStatus, ippiCopyConstBorder_16u_C4IR_L, (Ipp16u* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp16u value[4])) |
238 | |
239 | IPPAPI(IppStatus, ippiCopyConstBorder_16s_C1IR_L, (Ipp16s* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp16s value)) |
240 | IPPAPI(IppStatus, ippiCopyConstBorder_16s_C3IR_L, (Ipp16s* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp16s value[3])) |
241 | IPPAPI(IppStatus, ippiCopyConstBorder_16s_C4IR_L, (Ipp16s* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp16s value[4])) |
242 | |
243 | IPPAPI(IppStatus, ippiCopyConstBorder_32s_C1IR_L, (Ipp32s* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp32s value)) |
244 | IPPAPI(IppStatus, ippiCopyConstBorder_32s_C3IR_L, (Ipp32s* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp32s value[3])) |
245 | IPPAPI(IppStatus, ippiCopyConstBorder_32s_C4IR_L, (Ipp32s* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp32s value[4])) |
246 | |
247 | IPPAPI(IppStatus, ippiCopyConstBorder_32f_C1IR_L, (Ipp32f* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp32f value)) |
248 | IPPAPI(IppStatus, ippiCopyConstBorder_32f_C3IR_L, (Ipp32f* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp32f value[3])) |
249 | IPPAPI(IppStatus, ippiCopyConstBorder_32f_C4IR_L, (Ipp32f* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp32f value[4])) |
250 | |
251 | |
252 | /* //////////////////////////////////////////////////////////////////////////// |
253 | // Name: ippiCopyMirrorBorder |
254 | // |
255 | // Purpose: Copies pixel values between two buffers and adds |
256 | // the mirror border pixels. |
257 | // |
258 | // Returns: |
259 | // ippStsNullPtrErr One of the pointers is NULL |
260 | // ippStsSizeErr 1). srcRoiSize or dstRoiSize has a field with negative or zero value |
261 | // 2). topBorderHeight or leftBorderWidth is less than zero |
262 | // 3). dstRoiSize.width < srcRoiSize.width + leftBorderWidth |
263 | // 4). dstRoiSize.height < srcRoiSize.height + topBorderHeight |
264 | // ippStsStepErr srcStep or dstStep is less than or equal to zero |
265 | // ippStsNoErr OK |
266 | // |
267 | // Parameters: |
268 | // pSrc Pointer to the source image buffer |
269 | // srcStep Step in bytes through the source image |
270 | // pDst Pointer to the destination image buffer |
271 | // dstStep Step in bytes through the destination image |
272 | // scrRoiSize Size of the source ROI in pixels |
273 | // dstRoiSize Size of the destination ROI in pixels |
274 | // topBorderHeight Height of the top border in pixels |
275 | // leftBorderWidth Width of the left border in pixels |
276 | */ |
277 | IPPAPI(IppStatus, ippiCopyMirrorBorder_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
278 | IPPAPI(IppStatus, ippiCopyMirrorBorder_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
279 | IPPAPI(IppStatus, ippiCopyMirrorBorder_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
280 | IPPAPI(IppStatus, ippiCopyMirrorBorder_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
281 | IPPAPI(IppStatus, ippiCopyMirrorBorder_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
282 | IPPAPI(IppStatus, ippiCopyMirrorBorder_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
283 | IPPAPI(IppStatus, ippiCopyMirrorBorder_32s_C1R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
284 | IPPAPI(IppStatus, ippiCopyMirrorBorder_32s_C3R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
285 | IPPAPI(IppStatus, ippiCopyMirrorBorder_32s_C4R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
286 | IPPAPI(IppStatus, ippiCopyMirrorBorder_8u_C1IR_L, (const Ipp8u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
287 | IPPAPI(IppStatus, ippiCopyMirrorBorder_8u_C3IR_L, (const Ipp8u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
288 | IPPAPI(IppStatus, ippiCopyMirrorBorder_8u_C4IR_L, (const Ipp8u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
289 | IPPAPI(IppStatus, ippiCopyMirrorBorder_16s_C1IR_L, (const Ipp16s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
290 | IPPAPI(IppStatus, ippiCopyMirrorBorder_16s_C3IR_L, (const Ipp16s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
291 | IPPAPI(IppStatus, ippiCopyMirrorBorder_16s_C4IR_L, (const Ipp16s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
292 | IPPAPI(IppStatus, ippiCopyMirrorBorder_32s_C1IR_L, (const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
293 | IPPAPI(IppStatus, ippiCopyMirrorBorder_32s_C3IR_L, (const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
294 | IPPAPI(IppStatus, ippiCopyMirrorBorder_32s_C4IR_L, (const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
295 | IPPAPI(IppStatus, ippiCopyMirrorBorder_16u_C1IR_L, (const Ipp16u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
296 | IPPAPI(IppStatus, ippiCopyMirrorBorder_16u_C3IR_L, (const Ipp16u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
297 | IPPAPI(IppStatus, ippiCopyMirrorBorder_16u_C4IR_L, (const Ipp16u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
298 | IPPAPI(IppStatus, ippiCopyMirrorBorder_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
299 | IPPAPI(IppStatus, ippiCopyMirrorBorder_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
300 | IPPAPI(IppStatus, ippiCopyMirrorBorder_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
301 | IPPAPI(IppStatus, ippiCopyMirrorBorder_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
302 | IPPAPI(IppStatus, ippiCopyMirrorBorder_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
303 | IPPAPI(IppStatus, ippiCopyMirrorBorder_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) |
304 | IPPAPI(IppStatus, ippiCopyMirrorBorder_32f_C1IR_L, (const Ipp32f* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
305 | IPPAPI(IppStatus, ippiCopyMirrorBorder_32f_C3IR_L, (const Ipp32f* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
306 | IPPAPI(IppStatus, ippiCopyMirrorBorder_32f_C4IR_L, (const Ipp32f* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) |
307 | |
308 | /* ///////////////////////////////////////////////////////////////////////////// |
309 | // Bilateral filter functions with Border |
310 | ///////////////////////////////////////////////////////////////////////////// |
311 | // Name: ippiFilterBilateralBorderGetBufferSize_L |
312 | // Purpose: to define buffer size for bilateral filter |
313 | // Parameters: |
314 | // filter Type of bilateral filter. Possible value is ippiFilterBilateralGauss. |
315 | // dstRoiSize Roi size (in pixels) of destination image what will be applied |
316 | // for processing. |
317 | // radius Radius of circular neighborhood what defines pixels for calculation. |
318 | // dataType Data type of the source and destination images. Possible values |
319 | // are Ipp8u and Ipp32f. |
320 | // numChannels Number of channels in the images. Possible values are 1 and 3. |
321 | // distMethod The type of method for definition of distance beetween pixel untensity. |
322 | // Possible value is ippDistNormL1. |
323 | // pSpecSize Pointer to the size (in bytes) of the spec. |
324 | // pBufferSize Pointer to the size (in bytes) of the external work buffer. |
325 | // Return: |
326 | // ippStsNoErr OK |
327 | // ippStsNullPtrErr any pointer is NULL |
328 | // ippStsSizeErr size of dstRoiSize is less or equal 0 |
329 | // ippStsMaskSizeErr radius is less or equal 0 |
330 | // ippStsNotSupportedModeErr filter or distMethod is not supported |
331 | // ippStsDataTypeErr Indicates an error when dataType has an illegal value. |
332 | // ippStsNumChannelsErr Indicates an error when numChannels has an illegal value. |
333 | */ |
334 | IPPAPI(IppStatus, ippiFilterBilateralBorderGetBufferSize_L , (IppiFilterBilateralType filter, IppiSizeL dstRoiSize, int radius, IppDataType dataType, int numChannels, IppiDistanceMethodType distMethodType, IppSizeL *pSpecSize, IppSizeL *pBufferSize)) |
335 | |
336 | /* ///////////////////////////////////////////////////////////////////////////// |
337 | // Name: ippiFilterBilateralBorderInit_L |
338 | // Purpose: initialization of Spec for bilateral filter with border |
339 | // Parameters: |
340 | // filter Type of bilateral filter. Possible value is ippiFilterBilateralGauss. |
341 | // dstRoiSize Roi size (in pixels) of destination image what will be applied |
342 | // for processing. |
343 | // radius Radius of circular neighborhood what defines pixels for calculation. |
344 | // dataType Data type of the source and destination images. Possible values |
345 | // are Ipp8u and Ipp32f. |
346 | // numChannels Number of channels in the images. Possible values are 1 and 3. |
347 | // distMethodType The type of method for definition of distance between pixel intensity. |
348 | // Possible value is ippDistNormL1. |
349 | // valSquareSigma square of Sigma for factor function for pixel intensity |
350 | // posSquareSigma square of Sigma for factor function for pixel position |
351 | // pSpec pointer to Spec |
352 | // Return: |
353 | // ippStsNoErr OK |
354 | // ippStsNullPtrErr pointer ro Spec is NULL |
355 | // ippStsSizeErr size of dstRoiSize is less or equal 0 |
356 | // ippStsMaskSizeErr radius is less or equal 0 |
357 | // ippStsNotSupportedModeErr filter or distMethod is not supported |
358 | // ippStsDataTypeErr Indicates an error when dataType has an illegal value. |
359 | // ippStsNumChannelsErr Indicates an error when numChannels has an illegal value. |
360 | // ippStsBadArgErr valSquareSigma or posSquareSigma is less or equal 0 |
361 | */ |
362 | IPPAPI(IppStatus, ippiFilterBilateralBorderInit_L ,(IppiFilterBilateralType filter, IppiSizeL dstRoiSize, int radius, IppDataType dataType, int numChannels, IppiDistanceMethodType distMethod, Ipp32f valSquareSigma, Ipp32f posSquareSigma, IppiFilterBilateralSpec *pSpec)) |
363 | |
364 | /* ///////////////////////////////////////////////////////////////////////////// |
365 | // Name: ippiFilterBilateralBorder_8u_C1R |
366 | // ippiFilterBilateralBorder_8u_C3R |
367 | // Purpose: bilateral filter |
368 | // Parameters: |
369 | // pSrc Pointer to the source image |
370 | // srcStep Step through the source image |
371 | // pDst Pointer to the destination image |
372 | // dstStep Step through the destination image |
373 | // dstRoiSize Size of the destination ROI |
374 | // borderType Type of border. |
375 | // borderValue Pointer to constant value to assign to pixels of the constant border. This parameter is applicable |
376 | // only to the ippBorderConst border type. If this pointer is NULL than the constant value is equal 0. |
377 | // pSpec Pointer to filter spec |
378 | // pBuffer Pointer to work buffer |
379 | // Return: |
380 | // ippStsNoErr OK |
381 | // ippStsNullPtrErr pointer to Src, Dst, Spec or Buffer is NULL |
382 | // ippStsSizeErr size of dstRoiSize is less or equal 0 |
383 | // ippStsContextMatchErr filter Spec is not match |
384 | // ippStsNotEvenStepErr Indicated an error when one of the step values is not divisible by 4 |
385 | // for floating-point images. |
386 | // ippStsBorderErr Indicates an error when borderType has illegal value. |
387 | */ |
388 | IPPAPI(IppStatus, ippiFilterBilateralBorder_8u_C1R_L, (const Ipp8u *pSrc, IppSizeL srcStep, Ipp8u *pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppiBorderType borderType, Ipp8u *pBorderValue, const IppiFilterBilateralSpec *pSpec, Ipp8u* pBuffer)) |
389 | IPPAPI(IppStatus, ippiFilterBilateralBorder_8u_C3R_L, (const Ipp8u *pSrc, IppSizeL srcStep, Ipp8u *pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppiBorderType borderType, Ipp8u *pBorderValue, const IppiFilterBilateralSpec *pSpec, Ipp8u* pBuffer)) |
390 | |
391 | |
392 | /* ///////////////////////////////////////////////////////////////////////////// |
393 | // Resize Transform Functions |
394 | ///////////////////////////////////////////////////////////////////////////// */ |
395 | |
396 | /* ///////////////////////////////////////////////////////////////////////////// |
397 | // Name: ippiResizeGetSize_L |
398 | // Purpose: Computes the size of Spec structure and temporal buffer for Resize transform |
399 | // |
400 | // Parameters: |
401 | // srcSize Size of the input image (in pixels) |
402 | // dstSize Size of the output image (in pixels) |
403 | // dataType Data type {ipp8u|ipp16u|ipp16s|ipp32f} and ipp64f only for Linear interpolation |
404 | // numChannels Number of channels, possible values are 1 or 3 or 4 |
405 | // interpolation Interpolation method |
406 | // antialiasing Supported values: |
407 | // 0 - resizing without antialiasing |
408 | // 1 - resizing with antialiasing |
409 | // pSpecSize Pointer to the size (in bytes) of the Spec structure |
410 | // pInitBufSize Pointer to the size (in bytes) of the temporal buffer |
411 | // |
412 | // Return Values: |
413 | // ippStsNoErr Indicates no error |
414 | // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL |
415 | // ippStsNoOperation Indicates a warning if width or height of any image is zero |
416 | // ippStsSizeErr Indicates an error in the following cases: |
417 | // - if width or height of the source or destination image is negative, |
418 | // - if the source image size is less than a filter size of the chosen |
419 | // interpolation method (except ippSuper) |
420 | // - if one of the specified dimensions of the source image is less than |
421 | // the corresponding dimension of the destination image (for ippSuper method only) |
422 | // ippStsExceededSizeErr Indicates an error in the following cases: |
423 | // - if one of the calculated sizes exceeds maximum of IppSizeL type positive value |
424 | // (the size of the one of the processed images is too large) |
425 | // - if one of width or height of the destination image or the source image with borders |
426 | // exceeds 536870911 (0x1FFFFFFF) |
427 | // ippStsInterpolationErr Indicates an error if interpolation has an illegal value |
428 | // ippStsDataTypeErr Indicates an error when dataType has an illegal value |
429 | // ippStsNoAntialiasing Indicates a warning if specified interpolation does not support antialiasing |
430 | // ippStsNotSupportedModeErr Indicates an error if requested mode is currently not supported |
431 | // |
432 | // Notes: |
433 | // 1. Supported interpolation methods are ippNearest, ippLinear, ippCubic, ippLanczos and ippSuper. |
434 | // 2. If antialiasing value is equal to 1, use the ippResizeAntialiasing<Filter>Init functions, otherwise, use ippResize<Filter>Init |
435 | // 3. The implemented interpolation algorithms have the following filter sizes: Nearest Neighbor 1x1, |
436 | // Linear 2x2, Cubic 4x4, 2-lobed Lanczos 4x4. |
437 | */ |
438 | IPPAPI(IppStatus, ippiResizeGetSize_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, IppiInterpolationType interpolation, Ipp32u antialiasing, IppSizeL* pSpecSize, IppSizeL* pInitBufSize)) |
439 | |
440 | /* ///////////////////////////////////////////////////////////////////////////// |
441 | // Name: ippiResizeGetBufferSize_L |
442 | // Purpose: Computes the size of external buffer for Resize transform |
443 | // |
444 | // Parameters: |
445 | // pSpec Pointer to the Spec structure for resize filter |
446 | // dstSize Size of the output image (in pixels) |
447 | // numChannels Number of channels, possible values are 1 or 3 or 4 |
448 | // pBufSize Pointer to the size (in bytes) of the external buffer |
449 | // |
450 | // Return Values: |
451 | // ippStsNoErr Indicates no error |
452 | // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL |
453 | // ippStsContextMatchErr Indicates an error if pointer to an invalid pSpec structure is passed |
454 | // ippStsNumChannelsErr Indicates an error if numChannels has illegal value |
455 | // ippStsExceededSizeErr Indicates an error if one of the calculated sizes exceeds maximum of IppSizeL type |
456 | // positive value (the size of the one of the processed images is too large) |
457 | // ippStsSizeWrn Indicates a warning if the destination image size is more than |
458 | // the destination image origin size |
459 | */ |
460 | IPPAPI(IppStatus, ippiResizeGetBufferSize_L, (const IppiResizeSpec* pSpec, IppiSizeL dstSize, Ipp32u numChannels, IppSizeL* pBufSize)) |
461 | |
462 | /* ///////////////////////////////////////////////////////////////////////////// |
463 | // Name: ippiResizeGetBorderSize_L |
464 | // Purpose: Computes the size of possible borders for Resize transform |
465 | // |
466 | // Parameters: |
467 | // pSpec Pointer to the Spec structure for resize filter |
468 | // borderSize Size of necessary borders (for memory allocation) |
469 | // |
470 | // Return Values: |
471 | // ippStsNoErr Indicates no error |
472 | // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL |
473 | // ippStsContextMatchErr Indicates an error if pointer to an invalid pSpec structure is passed |
474 | */ |
475 | IPPAPI(IppStatus, ippiResizeGetBorderSize_L, (const IppiResizeSpec* pSpec, IppiBorderSize* pBorderSize)) |
476 | |
477 | /* ///////////////////////////////////////////////////////////////////////////// |
478 | // Name: ippiResizeGetSrcOffset |
479 | // Purpose: Computes the offset of input image for Resize transform by tile processing |
480 | // |
481 | // Parameters: |
482 | // pSpec Pointer to the Spec structure for resize filter |
483 | // dstOffset Offset of the tiled destination image respective |
484 | // to the destination image origin |
485 | // srcOffset Pointer to the computed offset of input image |
486 | // |
487 | // Return Values: |
488 | // ippStsNoErr Indicates no error |
489 | // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL |
490 | // ippStsContextMatchErr Indicates an error if pointer to an invalid pSpec structure is passed |
491 | // ippStsOutOfRangeErr Indicates an error if the destination image offset point is outside the |
492 | // destination image origin |
493 | */ |
494 | IPPAPI (IppStatus, ippiResizeGetSrcOffset_L, (const IppiResizeSpec* pSpec, IppiPointL dstOffset, IppiPointL* srcOffset)) |
495 | |
496 | /* ///////////////////////////////////////////////////////////////////////////// |
497 | // Name: ippiResizeGetSrcRoi |
498 | // Purpose: Computes the ROI of input image |
499 | // for Resize transform by tile processing |
500 | // |
501 | // Parameters: |
502 | // pSpec Pointer to the Spec structure for resize filter |
503 | // dstRoiOffset Offset of the destination image ROI |
504 | // dstRoiSize Size of the ROI of destination image |
505 | // srcRoiOffset Pointer to the computed offset of source image ROI |
506 | // srcRoiSize Pointer to the computed ROI size of source image |
507 | // |
508 | // Return Values: |
509 | // ippStsNoErr Indicates no error |
510 | // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL |
511 | // ippStsContextMatchErr Indicates an error if pointer to an invalid pSpec structure is passed |
512 | // ippStsOutOfRangeErr Indicates an error if the destination image offset point is outside |
513 | // the destination image origin |
514 | // ippStsSizeErr Indicates an error in the following cases: |
515 | // - if width or height of the destination image ROI size |
516 | // is negative or equal to 0, |
517 | // IppStsSizeWrn Indicates a warning if the destination ROI exceeds with |
518 | // the destination image origin |
519 | */ |
520 | IPPAPI (IppStatus, ippiResizeGetSrcRoi_L, (const IppiResizeSpec* pSpec, IppiPointL dstRoiOffset, IppiSizeL dstRoiSize, IppiPointL* srcRoiOffset, IppiSizeL* srcRoiSize)) |
521 | |
522 | /* ///////////////////////////////////////////////////////////////////////////// |
523 | // Name: ippiResizeNearestInit_L |
524 | // ippiResizeLinearInit_L |
525 | // ippiResizeCubicInit_L |
526 | // ippiResizeLanczosInit_L |
527 | // ippiResizeSuperInit_L |
528 | // |
529 | // Purpose: Initializes the Spec structure for the Resize transform |
530 | // by different interpolation methods |
531 | // |
532 | // Parameters: |
533 | // srcSize Size of the input image (in pixels) |
534 | // dstSize Size of the output image (in pixels) |
535 | // dataType Data type {ipp8u|ipp16u|ipp16s|ipp32f} and ipp64f only for Linear interpolation |
536 | // numChannels Number of channels, possible values are 1 or 3 or 4 |
537 | // valueB The first parameter (B) for specifying Cubic filters |
538 | // valueC The second parameter (C) for specifying Cubic filters |
539 | // numLobes The parameter for specifying Lanczos (2 or 3) or Hahn (3 or 4) filters |
540 | // pInitBuf Pointer to the temporal buffer for several filter initialization |
541 | // pSpec Pointer to the Spec structure for resize filter |
542 | // |
543 | // Return Values: |
544 | // ippStsNoErr Indicates no error |
545 | // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL |
546 | // ippStsNoOperation Indicates a warning if width or height of any image is zero |
547 | // ippStsSizeErr Indicates an error in the following cases: |
548 | // - if width or height of the source or destination image is negative, |
549 | // - if the source image size is less than a filter size of the chosen |
550 | // interpolation method (except ippiResizeSuperInit). |
551 | // - if one of the specified dimensions of the source image is less than |
552 | // the corresponding dimension of the destination image |
553 | // (for ippiResizeSuperInit only). |
554 | // ippStsExceededSizeErr Indicates an error if one of width or height of the destination image or |
555 | // the source image with borders exceeds 536870911 (0x1FFFFFFF) |
556 | // ippStsDataTypeErr Indicates an error when dataType has an illegal value. |
557 | // ippStsNotSupportedModeErr Indicates an error if the requested mode is not supported. |
558 | // |
559 | // Notes/References: |
560 | // 1. The equation shows the family of cubic filters: |
561 | // ((12-9B-6C)*|x|^3 + (-18+12B+6C)*|x|^2 + (6-2B) ) / 6 for |x| < 1 |
562 | // K(x) = (( -B-6C)*|x|^3 + ( 6B+30C)*|x|^2 + (-12B-48C)*|x| + (8B+24C)) / 6 for 1 <= |x| < 2 |
563 | // 0 elsewhere |
564 | // Some values of (B,C) correspond to known cubic splines: Catmull-Rom (B=0,C=0.5), B-Spline (B=1,C=0) and other. |
565 | // Mitchell, Don P.; Netravali, Arun N. (Aug. 1988). "Reconstruction filters in computer graphics" |
566 | // http://www.mentallandscape.com/Papers_siggraph88.pdf |
567 | // |
568 | // 2. Hahn filter does not supported now. |
569 | // 3. The implemented interpolation algorithms have the following filter sizes: Nearest Neighbor 1x1, |
570 | // Linear 2x2, Cubic 4x4, 2-lobed Lanczos 4x4, 3-lobed Lanczos 6x6. |
571 | */ |
572 | IPPAPI(IppStatus, ippiResizeNearestInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, IppiResizeSpec* pSpec)) |
573 | IPPAPI(IppStatus, ippiResizeLinearInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, IppiResizeSpec* pSpec)) |
574 | IPPAPI(IppStatus, ippiResizeCubicInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, Ipp32f valueB, Ipp32f valueC, IppiResizeSpec* pSpec, Ipp8u* pInitBuf)) |
575 | IPPAPI(IppStatus, ippiResizeLanczosInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, Ipp32u numLobes, IppiResizeSpec* pSpec, Ipp8u* pInitBuf)) |
576 | IPPAPI(IppStatus, ippiResizeSuperInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, IppiResizeSpec* pSpec)) |
577 | |
578 | /* ///////////////////////////////////////////////////////////////////////////// |
579 | // Name: ippiResizeNearest |
580 | // ippiResizeLinear |
581 | // ippiResizeCubic |
582 | // ippiResizeLanczos |
583 | // ippiResizeSuper |
584 | // |
585 | // Purpose: Changes an image size by different interpolation methods |
586 | // |
587 | // Parameters: |
588 | // pSrc Pointer to the source image |
589 | // srcStep Distance (in bytes) between of consecutive lines in the source image |
590 | // pDst Pointer to the destination image |
591 | // dstStep Distance (in bytes) between of consecutive lines in the destination image |
592 | // border Type of the border |
593 | // borderValue Pointer to the constant value(s) if border type equals ippBorderConstant |
594 | // pSpec Pointer to the Spec structure for resize filter |
595 | // pBuffer Pointer to the work buffer |
596 | // |
597 | // Return Values: |
598 | // ippStsNoErr Indicates no error |
599 | // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL |
600 | // ippStsNoOperation Indicates a warning if width or height of output image is zero |
601 | // ippStsBorderErr Indicates an error if border type has an illegal value |
602 | // ippStsContextMatchErr Indicates an error if pointer to an invalid pSpec structure is passed |
603 | // ippStsNotSupportedModeErr Indicates an error if requested mode is currently not supported |
604 | // ippStsSizeErr Indicates an error if width or height of the destination image |
605 | // is negative |
606 | // ippStsStepErr Indicates an error if the step value is not data type multiple |
607 | // ippStsSizeWrn Indicates a warning if the destination image size is more than |
608 | // the destination image origin size |
609 | // |
610 | // Notes: |
611 | // 1. Supported border types are ippBorderInMem and ippBorderRepl |
612 | // (except Nearest Neighbor and Super Sampling methods). |
613 | // 2. Hahn filter does not supported now. |
614 | */ |
615 | IPPAPI(IppStatus, ippiResizeNearest_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
616 | IPPAPI(IppStatus, ippiResizeNearest_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
617 | IPPAPI(IppStatus, ippiResizeNearest_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
618 | IPPAPI(IppStatus, ippiResizeNearest_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
619 | IPPAPI(IppStatus, ippiResizeNearest_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
620 | IPPAPI(IppStatus, ippiResizeNearest_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
621 | IPPAPI(IppStatus, ippiResizeNearest_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
622 | IPPAPI(IppStatus, ippiResizeNearest_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
623 | IPPAPI(IppStatus, ippiResizeNearest_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
624 | IPPAPI(IppStatus, ippiResizeNearest_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
625 | IPPAPI(IppStatus, ippiResizeNearest_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
626 | IPPAPI(IppStatus, ippiResizeNearest_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
627 | |
628 | IPPAPI (IppStatus, ippiResizeLinear_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
629 | IPPAPI (IppStatus, ippiResizeLinear_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
630 | IPPAPI (IppStatus, ippiResizeLinear_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
631 | IPPAPI (IppStatus, ippiResizeLinear_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
632 | IPPAPI (IppStatus, ippiResizeLinear_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
633 | IPPAPI (IppStatus, ippiResizeLinear_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
634 | IPPAPI (IppStatus, ippiResizeLinear_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
635 | IPPAPI (IppStatus, ippiResizeLinear_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
636 | IPPAPI (IppStatus, ippiResizeLinear_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
637 | IPPAPI (IppStatus, ippiResizeLinear_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
638 | IPPAPI (IppStatus, ippiResizeLinear_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
639 | IPPAPI (IppStatus, ippiResizeLinear_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
640 | IPPAPI (IppStatus, ippiResizeLinear_64f_C1R_L, (const Ipp64f* pSrc, IppSizeL srcStep, Ipp64f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp64f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
641 | IPPAPI (IppStatus, ippiResizeLinear_64f_C3R_L, (const Ipp64f* pSrc, IppSizeL srcStep, Ipp64f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp64f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
642 | IPPAPI (IppStatus, ippiResizeLinear_64f_C4R_L, (const Ipp64f* pSrc, IppSizeL srcStep, Ipp64f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp64f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
643 | |
644 | IPPAPI (IppStatus, ippiResizeCubic_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
645 | IPPAPI (IppStatus, ippiResizeCubic_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
646 | IPPAPI (IppStatus, ippiResizeCubic_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
647 | IPPAPI (IppStatus, ippiResizeCubic_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
648 | IPPAPI (IppStatus, ippiResizeCubic_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
649 | IPPAPI (IppStatus, ippiResizeCubic_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
650 | IPPAPI (IppStatus, ippiResizeCubic_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
651 | IPPAPI (IppStatus, ippiResizeCubic_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
652 | IPPAPI (IppStatus, ippiResizeCubic_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
653 | IPPAPI (IppStatus, ippiResizeCubic_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
654 | IPPAPI (IppStatus, ippiResizeCubic_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
655 | IPPAPI (IppStatus, ippiResizeCubic_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
656 | |
657 | IPPAPI (IppStatus, ippiResizeLanczos_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
658 | IPPAPI (IppStatus, ippiResizeLanczos_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
659 | IPPAPI (IppStatus, ippiResizeLanczos_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
660 | IPPAPI (IppStatus, ippiResizeLanczos_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
661 | IPPAPI (IppStatus, ippiResizeLanczos_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
662 | IPPAPI (IppStatus, ippiResizeLanczos_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
663 | IPPAPI (IppStatus, ippiResizeLanczos_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
664 | IPPAPI (IppStatus, ippiResizeLanczos_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
665 | IPPAPI (IppStatus, ippiResizeLanczos_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
666 | IPPAPI (IppStatus, ippiResizeLanczos_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
667 | IPPAPI (IppStatus, ippiResizeLanczos_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
668 | IPPAPI (IppStatus, ippiResizeLanczos_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
669 | |
670 | IPPAPI (IppStatus, ippiResizeSuper_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
671 | IPPAPI (IppStatus, ippiResizeSuper_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
672 | IPPAPI (IppStatus, ippiResizeSuper_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
673 | IPPAPI (IppStatus, ippiResizeSuper_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
674 | IPPAPI (IppStatus, ippiResizeSuper_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
675 | IPPAPI (IppStatus, ippiResizeSuper_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
676 | IPPAPI (IppStatus, ippiResizeSuper_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
677 | IPPAPI (IppStatus, ippiResizeSuper_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
678 | IPPAPI (IppStatus, ippiResizeSuper_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
679 | IPPAPI (IppStatus, ippiResizeSuper_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
680 | IPPAPI (IppStatus, ippiResizeSuper_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
681 | IPPAPI (IppStatus, ippiResizeSuper_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
682 | |
683 | /* ///////////////////////////////////////////////////////////////////////////// |
684 | // Name: ippiResizeNearestAntialiasingInit_L |
685 | // ippiResizeLinearAntialiasingInit_L |
686 | // ippiResizeCubicAntialiasingInit_L |
687 | // |
688 | // Purpose: Initializes the Spec structure for the Resize transform |
689 | // with antialiasing by different interpolation methods |
690 | // |
691 | // Parameters: |
692 | // srcSize Size of the input image (in pixels) |
693 | // dstSize Size of the output image (in pixels) |
694 | // dataType Data type {ipp8u|ipp16u|ipp16s|ipp32f} |
695 | // valueB The first parameter (B) for specifying Cubic filters |
696 | // valueC The second parameter (C) for specifying Cubic filters |
697 | // numLobes The parameter for specifying Lanczos (2 or 3) or Hahn (3 or 4) filters |
698 | // pInitBuf Pointer to the temporal buffer for several filter initialization |
699 | // pSpec Pointer to the Spec structure for resize filter |
700 | // |
701 | // Return Values: |
702 | // ippStsNoErr Indicates no error |
703 | // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL |
704 | // ippStsNoOperation Indicates a warning if width or height of any image is zero |
705 | // ippStsSizeErr Indicates an error if width or height of the source image is negative |
706 | // ippStsExceededSizeErr Indicates an error if one of width or height of the destination image or |
707 | // the source image with borders exceeds 536870911 (0x1FFFFFFF) |
708 | // ippStsNotSupportedModeErr Indicates an error if the requested mode is not supported. |
709 | // |
710 | // Notes/References: |
711 | // 1. The equation shows the family of cubic filters: |
712 | // ((12-9B-6C)*|x|^3 + (-18+12B+6C)*|x|^2 + (6-2B) ) / 6 for |x| < 1 |
713 | // K(x) = (( -B-6C)*|x|^3 + ( 6B+30C)*|x|^2 + (-12B-48C)*|x| + (8B+24C)) / 6 for 1 <= |x| < 2 |
714 | // 0 elsewhere |
715 | // Some values of (B,C) correspond to known cubic splines: Catmull-Rom (B=0,C=0.5), B-Spline (B=1,C=0) and other. |
716 | // Mitchell, Don P.; Netravali, Arun N. (Aug. 1988). "Reconstruction filters in computer graphics" |
717 | // http://www.mentallandscape.com/Papers_siggraph88.pdf |
718 | // |
719 | // 2. Hahn filter does not supported now. |
720 | // 3. The implemented interpolation algorithms have the following filter sizes: |
721 | // Linear 2x2, Cubic 4x4, 2-lobed Lanczos 4x4, 3-lobed Lanczos 6x6. |
722 | */ |
723 | |
724 | IPPAPI (IppStatus, ippiResizeAntialiasingLinearInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, IppiResizeSpec* pSpec, Ipp8u* pInitBuf)) |
725 | IPPAPI (IppStatus, ippiResizeAntialiasingCubicInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, Ipp32f valueB, Ipp32f valueC, IppiResizeSpec* pSpec, Ipp8u* pInitBuf)) |
726 | IPPAPI (IppStatus, ippiResizeAntialiasingLanczosInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, Ipp32u numLobes, IppiResizeSpec* pSpec, Ipp8u* pInitBuf)) |
727 | |
728 | |
729 | /* ///////////////////////////////////////////////////////////////////////////// |
730 | // Name: ippiResizeAntialiasing |
731 | // |
732 | // Purpose: Changes an image size by different interpolation methods with antialiasing technique |
733 | // |
734 | // Parameters: |
735 | // pSrc Pointer to the source image |
736 | // srcStep Distance (in bytes) between of consecutive lines in the source image |
737 | // pDst Pointer to the destination image |
738 | // dstStep Distance (in bytes) between of consecutive lines in the destination image |
739 | // dstOffset Offset of tiled image respectively destination image origin |
740 | // dstSize Size of the destination image (in pixels) |
741 | // border Type of the border |
742 | // borderValue Pointer to the constant value(s) if border type equals ippBorderConstant |
743 | // pSpec Pointer to the Spec structure for resize filter |
744 | // pBuffer Pointer to the work buffer |
745 | // |
746 | // Return Values: |
747 | // ippStsNoErr Indicates no error |
748 | // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL |
749 | // ippStsBorderErr Indicates an error if border type has an illegal value |
750 | // ippStsContextMatchErr Indicates an error if pointer to an invalid pSpec structure is passed |
751 | // ippStsNotSupportedModeErr Indicates an error if requested mode is currently not supported |
752 | // ippStsStepErr Indicates an error if the step value is not data type multiple |
753 | // ippStsOutOfRangeErr Indicates an error if the destination image offset point is outside the |
754 | // destination image origin |
755 | // ippStsSizeWrn Indicates a warning if the destination image size is more than |
756 | // the destination image origin size |
757 | // |
758 | // Notes: |
759 | // 1. Supported border types are ippBorderInMemory and ippBorderReplicate. |
760 | // 2. Hahn filter does not supported now. |
761 | */ |
762 | IPPAPI (IppStatus, ippiResizeAntialiasing_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
763 | IPPAPI (IppStatus, ippiResizeAntialiasing_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
764 | IPPAPI (IppStatus, ippiResizeAntialiasing_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
765 | IPPAPI (IppStatus, ippiResizeAntialiasing_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
766 | IPPAPI (IppStatus, ippiResizeAntialiasing_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
767 | IPPAPI (IppStatus, ippiResizeAntialiasing_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
768 | IPPAPI (IppStatus, ippiResizeAntialiasing_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
769 | IPPAPI (IppStatus, ippiResizeAntialiasing_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
770 | IPPAPI (IppStatus, ippiResizeAntialiasing_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
771 | IPPAPI (IppStatus, ippiResizeAntialiasing_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
772 | IPPAPI (IppStatus, ippiResizeAntialiasing_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
773 | IPPAPI (IppStatus, ippiResizeAntialiasing_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) |
774 | |
775 | |
776 | |
777 | /* ============================================================================= |
778 | ippCV |
779 | ============================================================================= */ |
780 | |
781 | /* /////////////////////////////////////////////////////////////////////////////////////// |
782 | // Name: ippiFilterGaussianGetBufferSize |
783 | // |
784 | // Purpose: Computes the size of the working buffer for the Gaussian filter |
785 | // |
786 | // Return: |
787 | // ippStsNoErr Ok. Any other value indicates an error or a warning. |
788 | // ippStsNullPtrErr One of the pointers is NULL. |
789 | // ippStsSizeErr maxRoiSize has a field with zero or negative value. |
790 | // ippStsDataTypeErr Indicates an error when dataType has an illegal value. |
791 | // ippStsBadArgErr Indicates an error if kernelSize is even or is less than 3. |
792 | // ippStsChannelErr Indicates an error when numChannels has an illegal value. |
793 | // |
794 | // Arguments: |
795 | // maxRoiSize Maximal size of the image ROI in pixels. |
796 | // kernelSize Size of the Gaussian kernel (odd, greater or equal to 3). |
797 | // dataType Data type of the source and destination images. |
798 | // numChannels Number of channels in the images. Possible values are 1 and 3. |
799 | // pSpecSize Pointer to the computed size (in bytes) of the Gaussian |
800 | // specification structure. |
801 | // pBufferSize Pointer to the computed size (in bytes) of the external buffer. |
802 | */ |
803 | IPPAPI(IppStatus, ippiFilterGaussianGetBufferSize_L,(IppiSizeL maxRoiSize, int kernelSize, |
804 | IppDataType dataType, IppiBorderType borderType, int numChannels, IppSizeL* pBufferSize)) |
805 | |
806 | /* /////////////////////////////////////////////////////////////////////////////////////// |
807 | // Name: ippiFilterGaussianGetSpecSize_L |
808 | // |
809 | // Purpose: Computes the size of the working buffer for the Gaussian filter GaussianSpec |
810 | // |
811 | // Return: |
812 | // ippStsNoErr Ok. Any other value indicates an error or a warning. |
813 | // ippStsNullPtrErr One of the pointers is NULL. |
814 | // ippStsSizeErr maxRoiSize has a field with zero or negative value. |
815 | // ippStsDataTypeErr Indicates an error when dataType has an illegal value. |
816 | // ippStsBadArgErr Indicates an error if kernelSize is even or is less than 3. |
817 | // ippStsChannelErr Indicates an error when numChannels has an illegal value. |
818 | // |
819 | // Arguments: |
820 | // kernelSize Size of the Gaussian kernel (odd, greater or equal to 3). |
821 | // dataType Data type of the source and destination images. |
822 | // numChannels Number of channels in the images. Possible values are 1 and 3. |
823 | // pSpecSize Pointer to the computed size (in bytes) of the Gaussian |
824 | // specification structure. |
825 | // pInitBufferSize Pointer to the computed size (in bytes) of the external buffer for the Gaussian filter GaussianSpec. |
826 | */ |
827 | IPPAPI(IppStatus, ippiFilterGaussianGetSpecSize_L,(int kernelSize, IppDataType dataType, int numChannels, IppSizeL *pSpecSize, IppSizeL* pInitBufferSize)) |
828 | |
829 | |
830 | /* /////////////////////////////////////////////////////////////////////////////////////// |
831 | // Name: ippiFilterGaussianInit |
832 | // |
833 | // Purpose: initialization of Spec for Gaussian filter |
834 | // |
835 | // Return: |
836 | // ippStsNoErr Ok. Any other value indicates an error or a warning. |
837 | // ippStsNullPtrErr One of the pointers is NULL. |
838 | // ippStsSizeErr roiSize has a field with zero or negative value. |
839 | // ippStsDataTypeErr Indicates an error when borderType has an illegal value. |
840 | // ippStsBadArgErr kernelSize is even or is less than 3. |
841 | // ippStsChannelErr Indicates an error when numChannels has an illegal value. |
842 | // ippStsBorderErr Indicates an error condition if borderType has a illegal |
843 | // value. |
844 | // |
845 | // Arguments: |
846 | // roiSize Size of the image ROI in pixels. |
847 | // kernelSize Size of the Gaussian kernel (odd, greater or equal to 3). |
848 | // sigma Standard deviation of the Gaussian kernel. |
849 | // borderType One of border supported types. |
850 | // dataType Data type of the source and destination images. |
851 | // numChannels Number of channels in the images. Possible values are 1 and 3. |
852 | // pSpec Pointer to the Spec. |
853 | // pBuffer Pointer to the buffer: |
854 | */ |
855 | |
856 | |
857 | IPPAPI(IppStatus, ippiFilterGaussianInit_L,(IppiSizeL roiSize, int kernelSize, Ipp32f sigma, IppiBorderType borderType, IppDataType dataType, int numChannels, |
858 | IppFilterGaussianSpec* pSpec, Ipp8u* pInitBuffer)) |
859 | |
860 | |
861 | /* /////////////////////////////////////////////////////////////////////////////////////// |
862 | // Name: ippiFilterGaussian |
863 | // |
864 | // Purpose: Applies Gaussian filter with borders |
865 | // |
866 | // Return: |
867 | // ippStsNoErr Ok. Any other value indicates an error or a warning. |
868 | // ippStsNullPtrErr One of the specified pointers is NULL. |
869 | // ippStsSizeErr roiSize has a field with zero or negative value. |
870 | // ippStsStepErr Indicates an error condition if srcStep or dstStep is less |
871 | // than roiSize.width * <pixelSize>. |
872 | // ippStsNotEvenStepErr One of the step values is not divisible by 4 for floating-point images. |
873 | // ippStsBadArgErr kernelSize is less than 3 or sigma is less or equal than 0. |
874 | // |
875 | // Arguments: |
876 | // pSrc Pointer to the source image ROI. |
877 | // srcStep Distance in bytes between starts of consecutive lines in the source image. |
878 | // pDst Pointer to the destination image ROI. |
879 | // dstStep Distance in bytes between starts of consecutive lines in the destination image. |
880 | // roiSize Size of the source and destination image ROI. |
881 | // borderType One of border supported types. |
882 | // borderValue Constant value to assign to pixels of the constant border. if border type equals ippBorderConstant |
883 | // pSpec Pointer to the Gaussian specification structure. |
884 | // pBuffer Pointer to the working buffer. |
885 | */ |
886 | |
887 | ////////////////////////////////////////////////////////////////////////////////////////// |
888 | |
889 | IPPAPI(IppStatus, ippiFilterGaussian_32f_C1R_L,(const Ipp32f* pSrc, IppSizeL srcStep, |
890 | Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize, IppiBorderType borderType, const Ipp32f borderValue[1], |
891 | IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer)) |
892 | |
893 | IPPAPI(IppStatus, ippiFilterGaussian_16u_C1R_L,(const Ipp16u * pSrc, IppSizeL srcStep, |
894 | Ipp16u * pDst, IppSizeL dstStep, IppiSizeL roiSize, IppiBorderType borderType, const Ipp16u borderValue[1], |
895 | IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer)) |
896 | |
897 | IPPAPI(IppStatus, ippiFilterGaussian_16s_C1R_L,(const Ipp16s* pSrc, IppSizeL srcStep, |
898 | Ipp16s* pDst, IppSizeL dstStep, IppiSizeL roiSize, IppiBorderType borderType, const Ipp16s borderValue[1], |
899 | IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer)) |
900 | |
901 | IPPAPI(IppStatus, ippiFilterGaussian_8u_C1R_L,(const Ipp8u* pSrc, IppSizeL srcStep, |
902 | Ipp8u* pDst, IppSizeL dstStep, IppiSizeL roiSize, IppiBorderType borderType, const Ipp8u borderValue[1], |
903 | IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer)) |
904 | |
905 | IPPAPI(IppStatus, ippiFilterGaussian_32f_C3R_L,(const Ipp32f* pSrc, IppSizeL srcStep, |
906 | Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize, IppiBorderType borderType, const Ipp32f borderValue[3], |
907 | IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer)) |
908 | |
909 | IPPAPI(IppStatus, ippiFilterGaussian_16u_C3R_L,(const Ipp16u * pSrc, IppSizeL srcStep, |
910 | Ipp16u * pDst, IppSizeL dstStep, IppiSizeL roiSize, IppiBorderType borderType, const Ipp16u borderValue[3], |
911 | IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer)) |
912 | |
913 | IPPAPI(IppStatus, ippiFilterGaussian_16s_C3R_L,(const Ipp16s* pSrc, IppSizeL srcStep, |
914 | Ipp16s* pDst, IppSizeL dstStep, IppiSizeL roiSize, IppiBorderType borderType, const Ipp16s borderValue[3], |
915 | IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer)) |
916 | |
917 | IPPAPI(IppStatus, ippiFilterGaussian_8u_C3R_L,(const Ipp8u* pSrc, IppSizeL srcStep, |
918 | Ipp8u* pDst, IppSizeL dstStep, IppiSizeL roiSize, IppiBorderType borderType, const Ipp8u borderValue[3], |
919 | IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer)) |
920 | |
921 | /****************************************************************************************\ |
922 | * Morphological Operations * |
923 | \****************************************************************************************/ |
924 | |
925 | /* /////////////////////////////////////////////////////////////////////////////////////// |
926 | // Name: ippiDilateGetBufferSize_L, ippiErodeGetBufferSize_L |
927 | // |
928 | // |
929 | // Purpose: Gets the size of the internal state or specification structure for morphological operations. |
930 | // |
931 | // Return: |
932 | // ippStsNoErr Ok. |
933 | // ippStsNullPtrErr One of the pointers is NULL. |
934 | // ippStsSizeErr Width of the image, or width or height of the structuring |
935 | // element is less than,or equal to zero. |
936 | // |
937 | // Parameters: |
938 | // roiSize Size of the source and destination image ROI in pixels. |
939 | // maskSize Size of the structuring element. |
940 | // dataType The type of data |
941 | // numChannels The number of channels |
942 | // pBufferSize Pointer to the buffer size value for the morphological initialization function. |
943 | */ |
944 | |
945 | IPPAPI(IppStatus, ippiDilateGetBufferSize_L, (IppiSizeL roiSize, IppiSizeL maskSize, IppDataType datatype, int numChannels, IppSizeL* pBufferSize)) |
946 | |
947 | IPPAPI(IppStatus, ippiErodeGetBufferSize_L, (IppiSizeL roiSize, IppiSizeL maskSize, IppDataType datatype, int numChannels, IppSizeL* pBufferSize)) |
948 | |
949 | |
950 | /* /////////////////////////////////////////////////////////////////////////////////////// |
951 | // Name: ippiDilateGetSpecSize_L, ippiErodeGetSpecSize_L |
952 | // |
953 | // |
954 | // Purpose: Gets the size of the internal state or specification structure for morphological operations. |
955 | // |
956 | // Return: |
957 | // ippStsNoErr Ok. |
958 | // ippStsNullPtrErr One of the pointers is NULL. |
959 | // ippStsSizeErr Width of the image, or width or height of the structuring |
960 | // element is less than,or equal to zero. |
961 | // |
962 | // Parameters: |
963 | // roiSize Size of the source and destination image ROI in pixels. |
964 | // maskSize Size of the structuring element. |
965 | // pSpecSize Pointer to the specification structure size. |
966 | */ |
967 | |
968 | IPPAPI(IppStatus, ippiDilateGetSpecSize_L,(IppiSizeL roiSize, IppiSizeL maskSize, IppSizeL* pSpecSize)) |
969 | IPPAPI(IppStatus, ippiErodeGetSpecSize_L,(IppiSizeL roiSize, IppiSizeL maskSize, IppSizeL* pSpecSize)) |
970 | |
971 | |
972 | /* /////////////////////////////////////////////////////////////////////////////////////// |
973 | // Name: ippiDilateInit_L, ippiErodeInit_L |
974 | // |
975 | // Purpose: Initialize the internal state or specification structure for morphological operation. |
976 | // |
977 | // Return: |
978 | // ippStsNoErr Ok. |
979 | // ippStsNullPtrErr One of the pointers is NULL. |
980 | // ippStsSizeErr Width of the image or width or height of the structuring |
981 | // element is less than, or equal to zero. |
982 | // ippStsAnchorErr Anchor point is outside the structuring element. |
983 | // |
984 | // Parameters: |
985 | // roiSize Size of the source and destination image ROI in pixels. |
986 | // pMask Pointer to the structuring element (mask). |
987 | // maskSize Size of the structuring element. |
988 | // pMorphSpec Pointer to the morphology specification structure. |
989 | */ |
990 | |
991 | |
992 | IPPAPI(IppStatus, ippiDilateInit_L,(IppiSizeL roiSize, const Ipp8u* pMask, IppiSizeL maskSize, IppiMorphStateL* pMorphSpec)) |
993 | IPPAPI(IppStatus, ippiErodeInit_L,(IppiSizeL roiSize, const Ipp8u* pMask, IppiSizeL maskSize, IppiMorphStateL* pMorphSpec)) |
994 | |
995 | |
996 | /* /////////////////////////////////////////////////////////////////////////////////////// |
997 | // Name: ippiDilate_8u_C1R, ippiDilate_8u_C3R, |
998 | // ippiDilate_8u_C4R, ippiDilate_32f_C1R, |
999 | // ippiDilate_32f_C3R, ippiDilate_32f_C4R |
1000 | // |
1001 | // ippiErode_8u_C1R, ippiErode_8u_C3R, |
1002 | // ippiErode_8u_C4R, ippiErode_32f_C1R, |
1003 | // ippiErode_32f_C3R, ippiErode_32f_C4R, |
1004 | // |
1005 | // ippiDilate_16u_C1R, ippiDilate_16s_C1R, |
1006 | // ippiDilate_1u_C1R |
1007 | // |
1008 | // Purpose: Perform erosion/dilation of the image arbitrary shape structuring element. |
1009 | // |
1010 | // Return: |
1011 | // ippStsNoErr Ok. |
1012 | // ippStsNullPtrErr One of the pointers is NULL. |
1013 | // ippStsSizeErr The ROI width or height is less than 1, |
1014 | // or ROI width is bigger than ROI width in the state structure. |
1015 | // ippStsStepErr Step is too small to fit the image. |
1016 | // ippStsNotEvenStepErr Step is not multiple of the element. |
1017 | // ippStsBadArgErr Incorrect border type. |
1018 | // |
1019 | |
1020 | // Parameters: |
1021 | // pSrc Pointer to the source image. |
1022 | // srcStep Step in the source image. |
1023 | // pDst Pointer to the destination image. |
1024 | // dstStep Step in the destination image. |
1025 | // roiSize Size of the source and destination image ROI in pixels. |
1026 | // borderType Type of border (ippBorderRepl now). |
1027 | // borderValue Pointer to the vector of values for the constant border. |
1028 | // pMorphSpec Pointer to the morphology specification structure. |
1029 | // pBuffer Pointer to the external work buffer. |
1030 | */ |
1031 | |
1032 | IPPAPI(IppStatus, ippiDilate_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, |
1033 | Ipp8u* pDst, IppSizeL dstStep, IppiSizeL roiSize, |
1034 | IppiBorderType borderType, const Ipp8u borderValue[1], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) |
1035 | IPPAPI(IppStatus, ippiDilate_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, |
1036 | Ipp8u* pDst, IppSizeL dstStep, IppiSizeL roiSize, |
1037 | IppiBorderType borderType, const Ipp8u borderValue[3], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) |
1038 | IPPAPI(IppStatus, ippiDilate_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, |
1039 | Ipp8u* pDst, IppSizeL dstStep, IppiSizeL roiSize, |
1040 | IppiBorderType borderType, const Ipp8u borderValue[4], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) |
1041 | IPPAPI(IppStatus, ippiDilate_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, |
1042 | Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize, |
1043 | IppiBorderType borderType, const Ipp32f borderValue[1], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) |
1044 | IPPAPI(IppStatus, ippiDilate_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, |
1045 | Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize, |
1046 | IppiBorderType borderType, const Ipp32f borderValue[3], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) |
1047 | IPPAPI(IppStatus, ippiDilate_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, |
1048 | Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize, |
1049 | IppiBorderType borderType, const Ipp32f borderValue[4], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) |
1050 | IPPAPI(IppStatus, ippiDilate_1u_C1R_L,( const Ipp8u* pSrc, IppSizeL srcStep, int srcBitOffset, Ipp8u* pDst, IppSizeL dstStep, int dstBitOffset, |
1051 | IppiSizeL roiSize, IppiBorderType borderType, const Ipp8u borderValue[1], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer )) |
1052 | IPPAPI(IppStatus, ippiDilate_16u_C1R_L,(const Ipp16u* pSrc, IppSizeL srcStep, |
1053 | Ipp16u* pDst, IppSizeL dstStep, IppiSizeL roiSize, |
1054 | IppiBorderType borderType, const Ipp16u borderValue[1], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) |
1055 | IPPAPI(IppStatus, ippiDilate_16s_C1R_L,(const Ipp16s* pSrc, IppSizeL srcStep, |
1056 | Ipp16s* pDst, IppSizeL dstStep, IppiSizeL roiSize, |
1057 | IppiBorderType borderType, const Ipp16s borderValue[1], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) |
1058 | |
1059 | IPPAPI(IppStatus, ippiErode_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, |
1060 | Ipp8u* pDst, IppSizeL dstStep, IppiSizeL roiSize, |
1061 | IppiBorderType borderType,const Ipp8u borderValue[1], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) |
1062 | IPPAPI(IppStatus, ippiErode_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, |
1063 | Ipp8u* pDst, IppSizeL dstStep, IppiSizeL roiSize, |
1064 | IppiBorderType borderType, const Ipp8u borderValue[3], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) |
1065 | IPPAPI(IppStatus, ippiErode_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, |
1066 | Ipp8u* pDst, IppSizeL dstStep, IppiSizeL roiSize, |
1067 | IppiBorderType borderType, const Ipp8u borderValue[4], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) |
1068 | IPPAPI(IppStatus, ippiErode_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, |
1069 | Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize, |
1070 | IppiBorderType borderType, const Ipp32f borderValue[1], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) |
1071 | IPPAPI(IppStatus, ippiErode_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, |
1072 | Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize, |
1073 | IppiBorderType borderType, const Ipp32f borderValue[3], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) |
1074 | IPPAPI(IppStatus, ippiErode_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, |
1075 | Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize, |
1076 | IppiBorderType borderType, const Ipp32f borderValue[4], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) |
1077 | IPPAPI(IppStatus, ippiErode_16u_C1R_L,(const Ipp16u* pSrc, IppSizeL srcStep, |
1078 | Ipp16u* pDst, IppSizeL dstStep, IppiSizeL roiSize, |
1079 | IppiBorderType borderType, const Ipp16u borderValue[1], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) |
1080 | IPPAPI(IppStatus, ippiErode_16s_C1R_L,(const Ipp16s* pSrc, IppSizeL srcStep, |
1081 | Ipp16s* pDst, IppSizeL dstStep, IppiSizeL roiSize, |
1082 | IppiBorderType borderType, const Ipp16s borderValue[1], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) |
1083 | IPPAPI(IppStatus, ippiErode_1u_C1R_L,( const Ipp8u* pSrc, IppSizeL srcStep, int srcBitOffset, Ipp8u* pDst, IppSizeL dstStep, int dstBitOffset, |
1084 | IppiSizeL roiSize, IppiBorderType borderType, const Ipp8u borderValue[1], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer )) |
1085 | |
1086 | |
1087 | |
1088 | /****************************************************************************************\ |
1089 | * Advanced Morphological Operations * |
1090 | \****************************************************************************************/ |
1091 | |
1092 | |
1093 | ///////////////////////////////////////////////////////////// |
1094 | |
1095 | /* /////////////////////////////////////////////////////////////////////////////////////// |
1096 | // Name: ippiMorphGetSpecSize_L |
1097 | // |
1098 | // Purpose: Gets the size of the internal state or specification structure for advanced morphological operations. |
1099 | // |
1100 | // Return: |
1101 | // ippStsNoErr Ok. |
1102 | // ippStsNullPtrErr One of the pointers is NULL. |
1103 | // ippStsSizeErr Width of the image, or width or height of the structuring. |
1104 | // element is less than, or equal to zero. |
1105 | // |
1106 | // Parameters: |
1107 | // roiSize Maximum size of the image ROI, in pixels. |
1108 | // maskSize Size of the structuring element. |
1109 | // dataType The type of data |
1110 | // numChannels The number of channels |
1111 | // pSpecSize Pointer to the specification structure size. |
1112 | */ |
1113 | |
1114 | IPPAPI(IppStatus, ippiMorphGetSpecSize_L,(IppiSizeL roiSize, IppiSizeL maskSize, IppDataType depth, int numChannels, IppSizeL* pSpecSize)) |
1115 | |
1116 | |
1117 | /* /////////////////////////////////////////////////////////////////////////////////////// |
1118 | // Name: ippiMorphGetBufferSize_L |
1119 | // |
1120 | // Purpose: Gets the size of the work buffer for the advanced morphological operations. |
1121 | // |
1122 | // Return: |
1123 | // ippStsNoErr Ok. |
1124 | // ippStsNullPtrErr One of the pointers is NULL. |
1125 | // ippStsSizeErr Width of the image, or width or height of the structuring. |
1126 | // element is less than, or equal to zero. |
1127 | // |
1128 | // Parameters: |
1129 | // roiSize Maximum size of the image ROI, in pixels. |
1130 | // maskSize Size of the structuring element. |
1131 | // dataType The type of data |
1132 | // numChannels The number of channels |
1133 | // pBufferSize Pointer to the buffer size value for the morphology initialization function. |
1134 | */ |
1135 | |
1136 | IPPAPI(IppStatus, ippiMorphGetBufferSize_L,(IppiSizeL roiSize, IppiSizeL maskSize, IppDataType depth, int numChannels, IppSizeL* bufferSize)) |
1137 | |
1138 | |
1139 | |
1140 | /* /////////////////////////////////////////////////////////////////////////////////////// |
1141 | // Name: ippiMorphInit_L |
1142 | // |
1143 | // Purpose: Initialize the internal state or specification structure for advanced morphological operations. |
1144 | // |
1145 | // Return: |
1146 | // ippStsNoErr Ok. |
1147 | // ippStsNullPtrErr One of the pointers is NULL. |
1148 | // ippStsSizeErr Width of the image or width or height of the structuring |
1149 | // element is less than, or equal to zero. |
1150 | // ippStsAnchorErr Anchor point is outside the structuring element. |
1151 | // |
1152 | // Parameters: |
1153 | // roiSize Maximum size of the image ROI, in pixels. |
1154 | // pMask Pointer to the structuring element (mask). |
1155 | // maskSize Size of the structuring element. |
1156 | // dataType The type of data |
1157 | // numChannels The number of channels |
1158 | // pMorphSpec Pointer to the advanced morphology specification structure. |
1159 | */ |
1160 | |
1161 | IPPAPI( IppStatus, ippiMorphInit_L,( IppiSizeL roiSize, const Ipp8u* pMask, IppiSizeL maskSize, IppDataType depth, int numChannels, |
1162 | IppiMorphAdvStateL* pMorphSpec)) |
1163 | |
1164 | |
1165 | /* /////////////////////////////////////////////////////////////////////////////////////// |
1166 | // Name: ippiMorphClose_8u_C1R_L, ippiMorphClose_8u_C3R_L, |
1167 | // ippiMorphClose_8u_C4R_L, ippiMorphClose_32f_C1R_L, |
1168 | // ippiMorphClose_32f_C3R_L, ippiMorphClose_32f_C4R_L |
1169 | // |
1170 | // ippiMorphOpen_8u_C1R_L, ippiMorphOpen_8u_C3R_L, |
1171 | // ippiMorphOpen_8u_C4R_L, ippiMorphOpen_32f_C1R_L, |
1172 | // ippiMorphOpen_32f_C3R_L, ippiMorphOpen_32f_C4R_L, |
1173 | // |
1174 | // ippiMorphClose_16u_C1R_L, ippiMorphOpen_16u_C1R_L, |
1175 | // ippiMorphClose_16s_C1R_L, ippiMorphOpen_16s_C1R_L, |
1176 | // ippiMorphClose_1u_C1R_L, ippiMorphOpen_1u_C1R_L, |
1177 | |
1178 | // ippiMorphTophat_8u_C1R_L, ippiMorphTophat_8u_C3R_L, |
1179 | // ippiMorphTophat_8u_C4R_L, ippiMorphTophat_32f_C1R_L, |
1180 | // ippiMorphTophat_32f_C3R_L, ippiMorphTophat_32f_C4R_L, |
1181 | // |
1182 | // ippiMorphBlackhat_8u_C1R_L, ippiMorphBlackhat_8u_C3R_L, |
1183 | // ippiMorphBlackhat_8u_C4R_L, ippiMorphBlackhat_32f_C1R_L, |
1184 | // ippiMorphBlackhat_32f_C3R_L, ippiMorphBlackhat_32f_C4R_L, |
1185 | // |
1186 | // ippiMorphGradient_8u_C1R_L, ippiMorphGradient_8u_C3R_L, |
1187 | // ippiMorphGradient_8u_C4R_L, ippiMorphGradient_32f_C1R_L, |
1188 | // ippiMorphGradient_32f_C3R_L, ippiMorphGradient_32f_C4R_L, |
1189 | // |
1190 | // Purpose: Perform advanced morphologcal operations on the image arbitrary shape structuring element. |
1191 | // |
1192 | // Return: |
1193 | // ippStsNoErr Ok. |
1194 | // ippStsNullPtrErr One of the pointers is NULL. |
1195 | // ippStsSizeErr The ROI width or height is less than 1, |
1196 | // or ROI width is bigger than ROI width in the state structure. |
1197 | // ippStsStepErr Step is too small to fit the image. |
1198 | // ippStsNotEvenStepErr Step is not multiple of the element. |
1199 | // ippStsBadArgErr Incorrect border type. |
1200 | // |
1201 | // Parameters: |
1202 | // pSrc Pointer to the source image. |
1203 | // srcStep Step in the source image. |
1204 | // pDst Pointer to the destination image. |
1205 | // dstStep Step in the destination image. |
1206 | // roiSize ROI size. |
1207 | // borderType Type of border (ippBorderRepl now). |
1208 | // borderValue Value for the constant border. |
1209 | // pMorphSpec Pointer to the morphology specification structure. |
1210 | // pBuffer Pointer to the external work buffer. |
1211 | */ |
1212 | |
1213 | ///////////////////////////////////////////////////////////////////////// |
1214 | |
1215 | IPPAPI( IppStatus, ippiMorphOpen_16u_C1R_L,( |
1216 | const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, |
1217 | IppiSizeL roiSize, IppiBorderType borderType, Ipp16u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1218 | IPPAPI( IppStatus, ippiMorphOpen_16s_C1R_L,( |
1219 | const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, |
1220 | IppiSizeL roiSize, IppiBorderType borderType, Ipp16s borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1221 | IPPAPI( IppStatus, ippiMorphOpen_1u_C1R_L,( |
1222 | const Ipp8u* pSrc, IppSizeL srcStep, int srcBitOffset, Ipp8u* pDst, IppSizeL dstStep, int dstBitOffset, |
1223 | IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1224 | IPPAPI( IppStatus, ippiMorphOpen_8u_C1R_L,( |
1225 | const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, |
1226 | IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1227 | IPPAPI( IppStatus, ippiMorphOpen_8u_C3R_L,( |
1228 | const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, |
1229 | IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[3], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1230 | IPPAPI( IppStatus, ippiMorphOpen_8u_C4R_L,( |
1231 | const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, |
1232 | IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[4], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1233 | |
1234 | IPPAPI( IppStatus, ippiMorphClose_8u_C1R_L,( |
1235 | const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, |
1236 | IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1237 | IPPAPI( IppStatus, ippiMorphClose_8u_C3R_L,( |
1238 | const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, |
1239 | IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[3], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1240 | IPPAPI( IppStatus, ippiMorphClose_8u_C4R_L,( |
1241 | const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, |
1242 | IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[4], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1243 | |
1244 | IPPAPI( IppStatus, ippiMorphClose_16u_C1R_L,( |
1245 | const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, |
1246 | IppiSizeL roiSize, IppiBorderType borderType, Ipp16u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1247 | IPPAPI( IppStatus, ippiMorphClose_16s_C1R_L,( |
1248 | const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, |
1249 | IppiSizeL roiSize, IppiBorderType borderType, Ipp16s borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1250 | IPPAPI( IppStatus, ippiMorphClose_1u_C1R_L,( |
1251 | const Ipp8u* pSrc, IppSizeL srcStep, int srcBitOffset, Ipp8u* pDst, IppSizeL dstStep, int dstBitOffset, |
1252 | IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1253 | IPPAPI( IppStatus, ippiMorphOpen_32f_C1R_L,( |
1254 | const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, |
1255 | IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1256 | IPPAPI( IppStatus, ippiMorphOpen_32f_C3R_L,( |
1257 | const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, |
1258 | IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[3], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1259 | IPPAPI( IppStatus, ippiMorphOpen_32f_C4R_L,( |
1260 | const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, |
1261 | IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[4], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1262 | IPPAPI( IppStatus, ippiMorphClose_32f_C1R_L,( |
1263 | const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, |
1264 | IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1265 | IPPAPI( IppStatus, ippiMorphClose_32f_C3R_L,( |
1266 | const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, |
1267 | IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[3], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1268 | IPPAPI( IppStatus, ippiMorphClose_32f_C4R_L,( |
1269 | const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, |
1270 | IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[4], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1271 | |
1272 | IPPAPI( IppStatus, ippiMorphTophat_16u_C1R_L,( |
1273 | const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, |
1274 | IppiSizeL roiSize, IppiBorderType borderType, Ipp16u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1275 | IPPAPI( IppStatus, ippiMorphTophat_16s_C1R_L,( |
1276 | const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, |
1277 | IppiSizeL roiSize, IppiBorderType borderType, Ipp16s borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1278 | IPPAPI( IppStatus, ippiMorphTophat_1u_C1R_L,( |
1279 | const Ipp8u* pSrc, IppSizeL srcStep, int srcBitOffset, Ipp8u* pDst, IppSizeL dstStep, int dstBitOffset, |
1280 | IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1281 | IPPAPI( IppStatus, ippiMorphTophat_8u_C1R_L,( |
1282 | const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, |
1283 | IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1284 | IPPAPI( IppStatus, ippiMorphTophat_8u_C3R_L,( |
1285 | const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, |
1286 | IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[3], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1287 | IPPAPI( IppStatus, ippiMorphTophat_8u_C4R_L,( |
1288 | const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, |
1289 | IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[4], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1290 | IPPAPI( IppStatus, ippiMorphTophat_32f_C1R_L,( |
1291 | const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, |
1292 | IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1293 | IPPAPI( IppStatus, ippiMorphTophat_32f_C3R_L,( |
1294 | const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, |
1295 | IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[3], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1296 | IPPAPI( IppStatus, ippiMorphTophat_32f_C4R_L,( |
1297 | const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, |
1298 | IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[4], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1299 | |
1300 | IPPAPI( IppStatus, ippiMorphBlackhat_16u_C1R_L,( |
1301 | const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, |
1302 | IppiSizeL roiSize, IppiBorderType borderType, Ipp16u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1303 | IPPAPI( IppStatus, ippiMorphBlackhat_16s_C1R_L,( |
1304 | const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, |
1305 | IppiSizeL roiSize, IppiBorderType borderType, Ipp16s borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1306 | IPPAPI( IppStatus, ippiMorphBlackhat_1u_C1R_L,( |
1307 | const Ipp8u* pSrc, IppSizeL srcStep, int srcBitOffset, Ipp8u* pDst, IppSizeL dstStep, int dstBitOffset, |
1308 | IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1309 | IPPAPI( IppStatus, ippiMorphBlackhat_8u_C1R_L,( |
1310 | const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, |
1311 | IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1312 | IPPAPI( IppStatus, ippiMorphBlackhat_8u_C3R_L,( |
1313 | const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, |
1314 | IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[3], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1315 | IPPAPI( IppStatus, ippiMorphBlackhat_8u_C4R_L,( |
1316 | const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, |
1317 | IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[4], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1318 | IPPAPI( IppStatus, ippiMorphBlackhat_32f_C1R_L,( |
1319 | const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, |
1320 | IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1321 | IPPAPI( IppStatus, ippiMorphBlackhat_32f_C3R_L,( |
1322 | const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, |
1323 | IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[3], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1324 | IPPAPI( IppStatus, ippiMorphBlackhat_32f_C4R_L,( |
1325 | const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, |
1326 | IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[4], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1327 | |
1328 | IPPAPI( IppStatus, ippiMorphGradient_16u_C1R_L,( |
1329 | const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, |
1330 | IppiSizeL roiSize, IppiBorderType borderType, Ipp16u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1331 | IPPAPI( IppStatus, ippiMorphGradient_16s_C1R_L,( |
1332 | const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, |
1333 | IppiSizeL roiSize, IppiBorderType borderType, Ipp16s borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1334 | IPPAPI( IppStatus, ippiMorphGradient_1u_C1R_L,( |
1335 | const Ipp8u* pSrc, IppSizeL srcStep, int srcBitOffset, Ipp8u* pDst, IppSizeL dstStep, int dstBitOffset, |
1336 | IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1337 | IPPAPI( IppStatus, ippiMorphGradient_8u_C1R_L,( |
1338 | const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, |
1339 | IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1340 | IPPAPI( IppStatus, ippiMorphGradient_8u_C3R_L,( |
1341 | const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, |
1342 | IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[3], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1343 | IPPAPI( IppStatus, ippiMorphGradient_8u_C4R_L,( |
1344 | const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, |
1345 | IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[4], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1346 | IPPAPI( IppStatus, ippiMorphGradient_32f_C1R_L,( |
1347 | const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, |
1348 | IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1349 | IPPAPI( IppStatus, ippiMorphGradient_32f_C3R_L,( |
1350 | const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, |
1351 | IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[3], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1352 | IPPAPI( IppStatus, ippiMorphGradient_32f_C4R_L,( |
1353 | const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, |
1354 | IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[4], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) |
1355 | |
1356 | /* /////////////////////////////////////////////////////////////////////////////////////// |
1357 | // Name: ippiMorphSetMode_L |
1358 | // |
1359 | // Purpose: Set mode for symmetrical operation in advanced morphology |
1360 | // IPP_MORPH_DEFAULT - default behavior |
1361 | // IPP_MORPH_MASK_NO_FLIP - don't flip mask(the same mask for (erode(dilate)->dilate(erode)) operations) |
1362 | // |
1363 | // |
1364 | // Return: |
1365 | // ippStsNoErr Ok. |
1366 | // ippStsNullPtrErr One of the pointers is NULL. |
1367 | // ippStsNotSupportedModeErr Incorrect mode |
1368 | // |
1369 | // Parameters: |
1370 | // mode Mode. One of IPP_MORPH_DEFAULT(flip), IPP_MORPH_MASK_NO_FLIP(no flip) |
1371 | // pMorphSpec Pointer to the morphology specification structure. |
1372 | */ |
1373 | |
1374 | IPPAPI(IppStatus, ippiMorphSetMode_L, (int mode, IppiMorphAdvStateL* pMorphSpec)) |
1375 | |
1376 | /*F/////////////////////////////////////////////////////////////////////////////////////// |
1377 | // Name: ippiCannyGetSize_L |
1378 | // |
1379 | // Purpose: Calculates size of temporary buffer, required to run Canny function. |
1380 | // |
1381 | // Return: |
1382 | // ippStsNoErr Ok |
1383 | // ippStsNullPtrErr Pointer bufferSize is NULL |
1384 | // ippStsSizeErr roiSize has a field with zero or negative value |
1385 | // |
1386 | // Parameters: |
1387 | // roi Size of image ROI in pixel |
1388 | // bufferSize Pointer to the variable that returns the size of the temporary buffer |
1389 | //F*/ |
1390 | |
1391 | IPPAPI(IppStatus, ippiCannyGetSize_L, ( IppiSizeL roi, IppSizeL* bufferSize )) |
1392 | /*F/////////////////////////////////////////////////////////////////////////////////////// |
1393 | // Name: ippiCanny_16s8u_C1R_L |
1394 | // |
1395 | // Purpose: Creates binary image of source's image edges, |
1396 | // using derivatives of the first order. |
1397 | // |
1398 | // Return: |
1399 | // ippStsNoErr Ok |
1400 | // ippStsNullPtrErr One of pointers is NULL |
1401 | // ippStsSizeErr The width or height of images is less or equal zero |
1402 | // ippStsStepErr The steps in images are too small |
1403 | // ippStsNotEvenStepErr Step is not multiple of element. |
1404 | // ippStsBadArgErr Bad thresholds |
1405 | // |
1406 | // Parameters: |
1407 | // pDX Pointers to the source image ( first derivatives with respect to X ) |
1408 | // dxStep Step in bytes through the source image pSrcDx |
1409 | // pDY Pointers to the source image ( first derivatives with respect to Y ) |
1410 | // dyStep Step in bytes through the source image pSrcDy |
1411 | // pDst Pointers to the destination image |
1412 | // dstStep Step in bytes through the destination image |
1413 | // |
1414 | // roiL Size of the source images ROI in pixels |
1415 | // lowThreshold Low threshold for edges detection |
1416 | // highThreshold Upper threshold for edges detection |
1417 | // norm Norm type, {ippNormL1, ippNormL2} |
1418 | // pBuffer Pointer to the pre-allocated temporary buffer, which size can be |
1419 | // calculated using ippiCannyGetSize function |
1420 | //F*/ |
1421 | |
1422 | IPPAPI(IppStatus, ippiCanny_16s8u_C1R_L, ( Ipp16s* pSrcDx, IppSizeL srcDxStep, Ipp16s* pSrcDy, IppSizeL srcDyStep, Ipp8u* pDstEdges, IppSizeL dstEdgeStep, IppiSizeL roiSize, Ipp32f lowThreshold, Ipp32f highThreshold, IppNormType norm, Ipp8u* pBuffer )) |
1423 | IPPAPI(IppStatus, ippiCanny_32f8u_C1R_L, ( Ipp32f* pSrcDx, IppSizeL srcDxStep, Ipp32f* pSrcDy, IppSizeL srcDyStep, Ipp8u* pDstEdges, IppSizeL dstEdgeStep, IppiSizeL roiSize, Ipp32f lowThreshold, Ipp32f highThreshold, IppNormType norm, Ipp8u* pBuffer )) |
1424 | |
1425 | |
1426 | #ifdef __cplusplus |
1427 | } |
1428 | #endif |
1429 | |
1430 | #endif /* __IPPICV_H__ */ |
1431 | |