55 template <
typename dTypeIn,
typename dTypeOut>
59 void *restrict pUpperVal,
60 void *restrict pLowerVal,
61 void *restrict pTrueVal,
62 void *restrict pFalseVal)
71 size_t width = pKerPrivArgs->
width;
72 size_t height = pKerPrivArgs->
height;
77 printf(
"Enter VXLIB_thresholdRange_exec_cn\n");
81 dTypeIn *restrict pInLocal = (dTypeIn *) pIn;
82 dTypeOut *restrict pOutLocal = (dTypeOut *) pOut;
84 dTypeIn *restrict pUpperValLocal = (dTypeIn *) pUpperVal;
85 dTypeIn *restrict pLowerValLocal = (dTypeIn *) pLowerVal;
86 dTypeIn *restrict pTrueValLocal = (dTypeIn *) pTrueVal;
87 dTypeIn *restrict pFalseValLocal = (dTypeIn *) pFalseVal;
91 printf(
"In VXLIB_thresholdRange_exec_cn, width: %d, height: %d\n", width, height);
94 if (*pLowerValLocal > *pUpperValLocal) {
99 for (uint32_t i = 0; i < height; i++) {
100 for (uint32_t j = 0; j < width; j++) {
101 if (pInLocal[i * strideInElements + j] > *pUpperValLocal) {
102 pOutLocal[i * strideOutElements + j] = *pFalseValLocal;
104 else if (pInLocal[i * strideInElements + j] < *pLowerValLocal) {
105 pOutLocal[i * strideOutElements + j] = *pFalseValLocal;
108 pOutLocal[i * strideOutElements + j] = *pTrueValLocal;
114 printf(
"row: %d col: %d a %d b %d temp %d \n", i, j, a, b, temp);
130 void *restrict pUpperVal,
131 void *restrict pLowerVal,
132 void *restrict pTrueVal,
133 void *restrict pFalseVal);
138 void *restrict pUpperVal,
139 void *restrict pLowerVal,
140 void *restrict pTrueVal,
141 void *restrict pFalseVal);
146 void *restrict pUpperVal,
147 void *restrict pLowerVal,
148 void *restrict pTrueVal,
149 void *restrict pFalseVal);
154 void *restrict pUpperVal,
155 void *restrict pLowerVal,
156 void *restrict pTrueVal,
157 void *restrict pFalseVal);
template VXLIB_STATUS VXLIB_thresholdRange_exec_cn< VXLIB_THRESHOLDRANGE_TYPENAME_I8U_O8U >(VXLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut, void *restrict pUpperVal, void *restrict pLowerVal, void *restrict pTrueVal, void *restrict pFalseVal)
template VXLIB_STATUS VXLIB_thresholdRange_exec_cn< VXLIB_THRESHOLDRANGE_TYPENAME_I16S_O16S >(VXLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut, void *restrict pUpperVal, void *restrict pLowerVal, void *restrict pTrueVal, void *restrict pFalseVal)
template VXLIB_STATUS VXLIB_thresholdRange_exec_cn< VXLIB_THRESHOLDRANGE_TYPENAME_I8S_O8S >(VXLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut, void *restrict pUpperVal, void *restrict pLowerVal, void *restrict pTrueVal, void *restrict pFalseVal)
VXLIB_STATUS VXLIB_thresholdRange_exec_cn(VXLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut, void *restrict pUpperVal, void *restrict pLowerVal, void *restrict pTrueVal, void *restrict pFalseVal)
This function is the main execution function for the natural C implementation of the kernel....
template VXLIB_STATUS VXLIB_thresholdRange_exec_cn< VXLIB_THRESHOLDRANGE_TYPENAME_I16U_O16U >(VXLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut, void *restrict pUpperVal, void *restrict pLowerVal, void *restrict pTrueVal, void *restrict pFalseVal)
Header file for kernel's internal use. For the kernel's interface, please see VXLIB_thresholdRange.
void * VXLIB_kernelHandle
Handle type for VXLIB operations.
VXLIB_STATUS_NAME
The enumeration of all status codes.
@ VXLIB_ERR_INVALID_VALUE
Structure that is reserved for internal use by the kernel.
size_t height
Height of image
size_t strideOutElements
Stride of output in elements.
size_t strideInElements
Stride of input in elements.
size_t width
Width of image