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
18extern "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*/
45IPPAPI(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
71IPPAPI(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
99IPPAPI(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*/
126IPPAPI(IppStatus, ippiCopyReplicateBorder_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
127IPPAPI(IppStatus, ippiCopyReplicateBorder_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
128IPPAPI(IppStatus, ippiCopyReplicateBorder_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
129IPPAPI(IppStatus, ippiCopyReplicateBorder_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
130IPPAPI(IppStatus, ippiCopyReplicateBorder_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
131IPPAPI(IppStatus, ippiCopyReplicateBorder_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
132IPPAPI(IppStatus, ippiCopyReplicateBorder_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
133IPPAPI(IppStatus, ippiCopyReplicateBorder_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
134IPPAPI(IppStatus, ippiCopyReplicateBorder_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
135IPPAPI(IppStatus, ippiCopyReplicateBorder_32s_C1R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
136IPPAPI(IppStatus, ippiCopyReplicateBorder_32s_C3R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
137IPPAPI(IppStatus, ippiCopyReplicateBorder_32s_C4R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
138IPPAPI(IppStatus, ippiCopyReplicateBorder_32s_C1IR_L,(const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
139IPPAPI(IppStatus, ippiCopyReplicateBorder_32s_C3IR_L, (const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
140IPPAPI(IppStatus, ippiCopyReplicateBorder_32s_C4IR_L, (const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
141IPPAPI(IppStatus, ippiCopyReplicateBorder_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
142IPPAPI(IppStatus, ippiCopyReplicateBorder_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
143IPPAPI(IppStatus, ippiCopyReplicateBorder_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
144IPPAPI(IppStatus, ippiCopyReplicateBorder_32f_C1IR_L, (const Ipp32f* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
145IPPAPI(IppStatus, ippiCopyReplicateBorder_32f_C3IR_L, (const Ipp32f* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
146IPPAPI(IppStatus, ippiCopyReplicateBorder_32f_C4IR_L, (const Ipp32f* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
147IPPAPI(IppStatus, ippiCopyReplicateBorder_8u_C1IR_L, (const Ipp8u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
148IPPAPI(IppStatus, ippiCopyReplicateBorder_8u_C3IR_L, (const Ipp8u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
149IPPAPI(IppStatus, ippiCopyReplicateBorder_8u_C4IR_L, (const Ipp8u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
150IPPAPI(IppStatus, ippiCopyReplicateBorder_16u_C1IR_L, (const Ipp16u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
151IPPAPI(IppStatus, ippiCopyReplicateBorder_16u_C3IR_L, (const Ipp16u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
152IPPAPI(IppStatus, ippiCopyReplicateBorder_16u_C4IR_L, (const Ipp16u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
153IPPAPI(IppStatus, ippiCopyReplicateBorder_16s_C1IR_L, (const Ipp16s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
154IPPAPI(IppStatus, ippiCopyReplicateBorder_16s_C3IR_L, (const Ipp16s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
155IPPAPI(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*/
181IPPAPI(IppStatus, ippiCopyWrapBorder_32s_C1R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
182IPPAPI(IppStatus, ippiCopyWrapBorder_32s_C1IR_L, (const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
183IPPAPI(IppStatus, ippiCopyWrapBorder_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
184IPPAPI(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*/
212IPPAPI(IppStatus, ippiCopyConstBorder_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, Ipp8u value))
213IPPAPI(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]))
214IPPAPI(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]))
215IPPAPI(IppStatus, ippiCopyConstBorder_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, Ipp16s value))
216IPPAPI(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]))
217IPPAPI(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]))
218IPPAPI(IppStatus, ippiCopyConstBorder_32s_C1R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, Ipp32s value))
219IPPAPI(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]))
220IPPAPI(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
222IPPAPI(IppStatus, ippiCopyConstBorder_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, Ipp16u value))
223IPPAPI(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]))
224IPPAPI(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
226IPPAPI(IppStatus, ippiCopyConstBorder_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, Ipp32f value))
227IPPAPI(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]))
228IPPAPI(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
231IPPAPI(IppStatus, ippiCopyConstBorder_8u_C1IR_L, (Ipp8u* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp8u value))
232IPPAPI(IppStatus, ippiCopyConstBorder_8u_C3IR_L, (Ipp8u* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp8u value[3]))
233IPPAPI(IppStatus, ippiCopyConstBorder_8u_C4IR_L, (Ipp8u* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp8u value[4]))
234
235IPPAPI(IppStatus, ippiCopyConstBorder_16u_C1IR_L, (Ipp16u* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp16u value))
236IPPAPI(IppStatus, ippiCopyConstBorder_16u_C3IR_L, (Ipp16u* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp16u value[3]))
237IPPAPI(IppStatus, ippiCopyConstBorder_16u_C4IR_L, (Ipp16u* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp16u value[4]))
238
239IPPAPI(IppStatus, ippiCopyConstBorder_16s_C1IR_L, (Ipp16s* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp16s value))
240IPPAPI(IppStatus, ippiCopyConstBorder_16s_C3IR_L, (Ipp16s* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp16s value[3]))
241IPPAPI(IppStatus, ippiCopyConstBorder_16s_C4IR_L, (Ipp16s* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp16s value[4]))
242
243IPPAPI(IppStatus, ippiCopyConstBorder_32s_C1IR_L, (Ipp32s* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp32s value))
244IPPAPI(IppStatus, ippiCopyConstBorder_32s_C3IR_L, (Ipp32s* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp32s value[3]))
245IPPAPI(IppStatus, ippiCopyConstBorder_32s_C4IR_L, (Ipp32s* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp32s value[4]))
246
247IPPAPI(IppStatus, ippiCopyConstBorder_32f_C1IR_L, (Ipp32f* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp32f value))
248IPPAPI(IppStatus, ippiCopyConstBorder_32f_C3IR_L, (Ipp32f* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp32f value[3]))
249IPPAPI(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*/
277IPPAPI(IppStatus, ippiCopyMirrorBorder_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
278IPPAPI(IppStatus, ippiCopyMirrorBorder_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
279IPPAPI(IppStatus, ippiCopyMirrorBorder_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
280IPPAPI(IppStatus, ippiCopyMirrorBorder_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
281IPPAPI(IppStatus, ippiCopyMirrorBorder_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
282IPPAPI(IppStatus, ippiCopyMirrorBorder_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
283IPPAPI(IppStatus, ippiCopyMirrorBorder_32s_C1R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
284IPPAPI(IppStatus, ippiCopyMirrorBorder_32s_C3R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
285IPPAPI(IppStatus, ippiCopyMirrorBorder_32s_C4R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
286IPPAPI(IppStatus, ippiCopyMirrorBorder_8u_C1IR_L, (const Ipp8u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
287IPPAPI(IppStatus, ippiCopyMirrorBorder_8u_C3IR_L, (const Ipp8u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
288IPPAPI(IppStatus, ippiCopyMirrorBorder_8u_C4IR_L, (const Ipp8u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
289IPPAPI(IppStatus, ippiCopyMirrorBorder_16s_C1IR_L, (const Ipp16s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
290IPPAPI(IppStatus, ippiCopyMirrorBorder_16s_C3IR_L, (const Ipp16s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
291IPPAPI(IppStatus, ippiCopyMirrorBorder_16s_C4IR_L, (const Ipp16s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
292IPPAPI(IppStatus, ippiCopyMirrorBorder_32s_C1IR_L, (const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
293IPPAPI(IppStatus, ippiCopyMirrorBorder_32s_C3IR_L, (const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
294IPPAPI(IppStatus, ippiCopyMirrorBorder_32s_C4IR_L, (const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
295IPPAPI(IppStatus, ippiCopyMirrorBorder_16u_C1IR_L, (const Ipp16u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
296IPPAPI(IppStatus, ippiCopyMirrorBorder_16u_C3IR_L, (const Ipp16u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
297IPPAPI(IppStatus, ippiCopyMirrorBorder_16u_C4IR_L, (const Ipp16u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
298IPPAPI(IppStatus, ippiCopyMirrorBorder_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
299IPPAPI(IppStatus, ippiCopyMirrorBorder_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
300IPPAPI(IppStatus, ippiCopyMirrorBorder_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
301IPPAPI(IppStatus, ippiCopyMirrorBorder_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
302IPPAPI(IppStatus, ippiCopyMirrorBorder_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
303IPPAPI(IppStatus, ippiCopyMirrorBorder_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth))
304IPPAPI(IppStatus, ippiCopyMirrorBorder_32f_C1IR_L, (const Ipp32f* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
305IPPAPI(IppStatus, ippiCopyMirrorBorder_32f_C3IR_L, (const Ipp32f* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth))
306IPPAPI(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*/
334IPPAPI(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*/
362IPPAPI(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*/
388IPPAPI(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))
389IPPAPI(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*/
438IPPAPI(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*/
460IPPAPI(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*/
475IPPAPI(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*/
494IPPAPI (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*/
520IPPAPI (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*/
572IPPAPI(IppStatus, ippiResizeNearestInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, IppiResizeSpec* pSpec))
573IPPAPI(IppStatus, ippiResizeLinearInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, IppiResizeSpec* pSpec))
574IPPAPI(IppStatus, ippiResizeCubicInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, Ipp32f valueB, Ipp32f valueC, IppiResizeSpec* pSpec, Ipp8u* pInitBuf))
575IPPAPI(IppStatus, ippiResizeLanczosInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, Ipp32u numLobes, IppiResizeSpec* pSpec, Ipp8u* pInitBuf))
576IPPAPI(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*/
615IPPAPI(IppStatus, ippiResizeNearest_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
616IPPAPI(IppStatus, ippiResizeNearest_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
617IPPAPI(IppStatus, ippiResizeNearest_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
618IPPAPI(IppStatus, ippiResizeNearest_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
619IPPAPI(IppStatus, ippiResizeNearest_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
620IPPAPI(IppStatus, ippiResizeNearest_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
621IPPAPI(IppStatus, ippiResizeNearest_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
622IPPAPI(IppStatus, ippiResizeNearest_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
623IPPAPI(IppStatus, ippiResizeNearest_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
624IPPAPI(IppStatus, ippiResizeNearest_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
625IPPAPI(IppStatus, ippiResizeNearest_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
626IPPAPI(IppStatus, ippiResizeNearest_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
627
628IPPAPI (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))
629IPPAPI (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))
630IPPAPI (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))
631IPPAPI (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))
632IPPAPI (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))
633IPPAPI (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))
634IPPAPI (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))
635IPPAPI (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))
636IPPAPI (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))
637IPPAPI (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))
638IPPAPI (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))
639IPPAPI (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))
640IPPAPI (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))
641IPPAPI (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))
642IPPAPI (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
644IPPAPI (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))
645IPPAPI (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))
646IPPAPI (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))
647IPPAPI (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))
648IPPAPI (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))
649IPPAPI (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))
650IPPAPI (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))
651IPPAPI (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))
652IPPAPI (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))
653IPPAPI (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))
654IPPAPI (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))
655IPPAPI (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
657IPPAPI (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))
658IPPAPI (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))
659IPPAPI (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))
660IPPAPI (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))
661IPPAPI (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))
662IPPAPI (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))
663IPPAPI (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))
664IPPAPI (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))
665IPPAPI (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))
666IPPAPI (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))
667IPPAPI (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))
668IPPAPI (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
670IPPAPI (IppStatus, ippiResizeSuper_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
671IPPAPI (IppStatus, ippiResizeSuper_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
672IPPAPI (IppStatus, ippiResizeSuper_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
673IPPAPI (IppStatus, ippiResizeSuper_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
674IPPAPI (IppStatus, ippiResizeSuper_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
675IPPAPI (IppStatus, ippiResizeSuper_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
676IPPAPI (IppStatus, ippiResizeSuper_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
677IPPAPI (IppStatus, ippiResizeSuper_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
678IPPAPI (IppStatus, ippiResizeSuper_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
679IPPAPI (IppStatus, ippiResizeSuper_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
680IPPAPI (IppStatus, ippiResizeSuper_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer))
681IPPAPI (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
724IPPAPI (IppStatus, ippiResizeAntialiasingLinearInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, IppiResizeSpec* pSpec, Ipp8u* pInitBuf))
725IPPAPI (IppStatus, ippiResizeAntialiasingCubicInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, Ipp32f valueB, Ipp32f valueC, IppiResizeSpec* pSpec, Ipp8u* pInitBuf))
726IPPAPI (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*/
762IPPAPI (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))
763IPPAPI (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))
764IPPAPI (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))
765IPPAPI (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))
766IPPAPI (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))
767IPPAPI (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))
768IPPAPI (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))
769IPPAPI (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))
770IPPAPI (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))
771IPPAPI (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))
772IPPAPI (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))
773IPPAPI (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*/
803IPPAPI(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*/
827IPPAPI(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
857IPPAPI(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
889IPPAPI(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
893IPPAPI(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
897IPPAPI(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
901IPPAPI(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
905IPPAPI(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
909IPPAPI(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
913IPPAPI(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
917IPPAPI(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
945IPPAPI(IppStatus, ippiDilateGetBufferSize_L, (IppiSizeL roiSize, IppiSizeL maskSize, IppDataType datatype, int numChannels, IppSizeL* pBufferSize))
946
947IPPAPI(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
968IPPAPI(IppStatus, ippiDilateGetSpecSize_L,(IppiSizeL roiSize, IppiSizeL maskSize, IppSizeL* pSpecSize))
969IPPAPI(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
992IPPAPI(IppStatus, ippiDilateInit_L,(IppiSizeL roiSize, const Ipp8u* pMask, IppiSizeL maskSize, IppiMorphStateL* pMorphSpec))
993IPPAPI(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
1032IPPAPI(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))
1035IPPAPI(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))
1038IPPAPI(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))
1041IPPAPI(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))
1044IPPAPI(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))
1047IPPAPI(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))
1050IPPAPI(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 ))
1052IPPAPI(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))
1055IPPAPI(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
1059IPPAPI(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))
1062IPPAPI(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))
1065IPPAPI(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))
1068IPPAPI(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))
1071IPPAPI(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))
1074IPPAPI(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))
1077IPPAPI(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))
1080IPPAPI(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))
1083IPPAPI(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
1114IPPAPI(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
1136IPPAPI(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
1161IPPAPI( 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
1215IPPAPI( 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 ))
1218IPPAPI( 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 ))
1221IPPAPI( 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 ))
1224IPPAPI( 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 ))
1227IPPAPI( 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 ))
1230IPPAPI( 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
1234IPPAPI( 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 ))
1237IPPAPI( 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 ))
1240IPPAPI( 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
1244IPPAPI( 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 ))
1247IPPAPI( 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 ))
1250IPPAPI( 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 ))
1253IPPAPI( 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 ))
1256IPPAPI( 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 ))
1259IPPAPI( 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 ))
1262IPPAPI( 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 ))
1265IPPAPI( 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 ))
1268IPPAPI( 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
1272IPPAPI( 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 ))
1275IPPAPI( 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 ))
1278IPPAPI( 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 ))
1281IPPAPI( 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 ))
1284IPPAPI( 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 ))
1287IPPAPI( 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 ))
1290IPPAPI( 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 ))
1293IPPAPI( 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 ))
1296IPPAPI( 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
1300IPPAPI( 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 ))
1303IPPAPI( 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 ))
1306IPPAPI( 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 ))
1309IPPAPI( 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 ))
1312IPPAPI( 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 ))
1315IPPAPI( 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 ))
1318IPPAPI( 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 ))
1321IPPAPI( 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 ))
1324IPPAPI( 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
1328IPPAPI( 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 ))
1331IPPAPI( 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 ))
1334IPPAPI( 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 ))
1337IPPAPI( 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 ))
1340IPPAPI( 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 ))
1343IPPAPI( 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 ))
1346IPPAPI( 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 ))
1349IPPAPI( 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 ))
1352IPPAPI( 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
1374IPPAPI(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
1391IPPAPI(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
1422IPPAPI(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 ))
1423IPPAPI(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

source code of opencv/build/3rdparty/ippicv/ippicv_lnx/icv/include/ippicv_l.h