Min
Computes the minimum of image pixel values.
The function interface declaration is as follows:
- Operation on single-channel data:
HmppResult HMPPI_Min_8u_C1R(const uint8_t *src, int32_t srcStep, HmppiSize roiSize, uint8_t *min);
HmppResult HMPPI_Min_16u_C1R(const uint16_t *src, int32_t srcStep, HmppiSize roiSize, uint16_t *min);
HmppResult HMPPI_Min_16s_C1R(const int16_t *src, int32_t srcStep, HmppiSize roiSize, int16_t *min);
HmppResult HMPPI_Min_32f_C1R(const float *src, int32_t srcStep, HmppiSize roiSize, float *min);
- Operation on multi-channel data:
HmppResult HMPPI_Min_8u_C3R(const uint8_t *src, int32_t srcStep, HmppiSize roiSize, uint8_t min[3]);
HmppResult HMPPI_Min_16u_C3R(const uint16_t *src, int32_t srcStep, HmppiSize roiSize, uint16_t min[3]);
HmppResult HMPPI_Min_16s_C3R(const int16_t *src, int32_t srcStep, HmppiSize roiSize, int16_t min[3]);
HmppResult HMPPI_Min_32f_C3R(const float *src, int32_t srcStep, HmppiSize roiSize, float min[3]);
HmppResult HMPPI_Min_8u_C4R(const uint8_t *src, int32_t srcStep, HmppiSize roiSize, uint8_t min[4]);
HmppResult HMPPI_Min_16u_C4R(const uint16_t *src, int32_t srcStep, HmppiSize roiSize, uint16_t min[4]);
HmppResult HMPPI_Min_16s_C4R(const int16_t *src, int32_t srcStep, HmppiSize roiSize, int16_t min[4]);
HmppResult HMPPI_Min_32f_C4R(const float *src, int32_t srcStep, HmppiSize roiSize, float min[4]);
HmppResult HMPPI_Min_8u_AC4R(const uint8_t *src, int32_t srcStep, HmppiSize roiSize, uint8_t min[3]);
HmppResult HMPPI_Min_16u_AC4R(const uint16_t *src, int32_t srcStep, HmppiSize roiSize, uint16_t min[3]);
HmppResult HMPPI_Min_16s_AC4R(const int16_t *src, int32_t srcStep, HmppiSize roiSize, int16_t min[3]);
HmppResult HMPPI_Min_32f_AC4R(const float *src, int32_t srcStep, HmppiSize roiSize, float min[3]);
Parameters
Parameter |
Description |
Value Range |
Input/Output |
|---|---|---|---|
src |
Pointer to the source image ROI |
The value cannot be NULL. |
Input |
srcStep |
Distance between starts of consecutive lines in the source image, in bytes |
The value must be zero or a positive integer. |
Input |
roiSize |
Size of the ROI of the source and destination images, in pixels |
roiSize.width ∈ (0, INT_MAX], roiSize.height ∈ (0, INT_MAX] |
Input |
min |
Pointer to the minimum pixel value (for single-channel data) |
The value cannot be NULL. |
Input/Output |
min[] |
Array containing the minimum channel values of the pixels in the source buffer (for multi-channel data) |
The value cannot be NULL. |
Input/Output |
Return Value
- Success: HMPP_STS_NO_ERR
- Failure: An error code is returned.
Error Codes
Error Code |
Description |
|---|---|
HMPP_STS_NULL_PTR_ERR |
The value of src is NULL. |
HMPP_STS_STEP_ERR |
The value of srcStep is less than or equal to 0. |
HMPP_STS_ROI_ERR |
roiSize.width > Step |
HMPP_STS_SIZE_ERR |
The value of roiSize.width or roiSize.height is less than or equal to 0. |
HMPP_STS_NOT_EVEN_STEP_ERROR |
The value of srcStep cannot be exactly divided by the byte length of the data type to which src belongs. |
Example
void ThresholdExample()
{
HmppiSize roi = {9,3};
uint8_t src[52] = { 10, 4, 8, 13, 16, 20, 24, 28, 32, 36, 40, 44, 48,
11, 4, 8, 13, 16, 20, 24, 28, 32, 36, 40, 44, 48,
12, 4, 8, 13, 16, 20, 3, 28, 32, 36, 40, 1, 255,
13, 4, 8, 13, 16, 20, 24, 28, 32, 36, 40, 44, 48};
int32_t srcStep = 13*sizeof(uint8_t);
uint8_t min;
HMPPI_Min_8u_C1R(src, srcStep, roi, &min);
printf("min=%d ", min);
printf("\n");
}
int main(){
ThresholdExample();
return 0;
}
Test results:
min = 3