CompareC
通过特定的比较方法将图像的每一个像素值与一个固定值比较。
函数接口声明如下:
HmppResult HMPPI_CompareC_8u_C1R(const uint8_t* pSrc, int srcStep, uint8_t value, uint8_t* pDst, int dstStep, HmppiSize roiSize, HmppCmpOp cmpOp);
参数
参数名 |
描述 |
取值范围 |
输入/输出 |
|---|---|---|---|
pSrc |
指向源向量的指针。 |
非空 |
输入 |
srcStep |
源图像中连续行起点之间的距离(以字节为单位)。 |
(0, INT_MAX] |
输入 |
value |
用于比较的固定值 |
[-UINT8_MAX, UINT8_MAX] |
输入 |
pDst |
指向目的向量的指针。 |
非空 |
输出 |
dstStep |
目标图像中连续行的起点之间的距离(以字节为单位)。 |
(0, INT_MAX] |
输入 |
roiSize |
源和目标图像感兴趣区域的大小(以像素为单位)。 |
roiSize.width∈(0, INT_MAX],roiSize.height∈(0, INT_MAX] |
输入 |
cmpOp |
枚举,指示使用的比较操作。 |
|
输入 |
返回值
- 成功:返回HMPP_STS_NO_ERR。
- 失败:返回错误码。
错误码
错误码 |
描述 |
|---|---|
HMPP_STS_NULL_PTR_ERR |
src、max中存在空指针。 |
HMPP_STS_STEP_ERR |
srcStep小于或等于0。 |
HMPP_STS_SIZE_ERR |
roiSize.width或roiSize.height小于或等于0。 |
HMPP_STS_ROI_ERR |
roiSize.width > 步长。 |
示例
#include <stdio.h>
#include "hmppi.h"
#include "hmpp_type.h"
void CompareCExample()
{
HmppiSize roi = {5, 7};
uint8_t src[45] = {1, 2, 3, 4, 5,
1, 2, 3, 4, 5,
1, 2, 3, 4, 5,
1, 2, 3, 4, 5,
1, 2, 3, 4, 5,
1, 2, 3, 4, 5,
1, 2, 3, 4, 5,
1, 2, 3, 4, 5,
1, 2, 3, 4, 5
};
uint8_t dst[49] = {0};
int32_t srcStep = 5 * sizeof(uint8_t);
int32_t dstStep = 7 * sizeof(uint8_t);
int32_t value = 3;
HmppCmpOp cmpop = HMPP_CMP_GE;
(void)HMPPI_CompareC_8u_C1R(src, srcStep, value, dst, dstStep, roi, cmpop);
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 7; j++) {
printf("%d ", dst[i * 7 + j]);
}
printf("\n");
}
}
int main()
{
CompareCExample();
return 0;
}
运行结果:
0 0 255 255 255 0 0 0 0 255 255 255 0 0 0 0 255 255 255 0 0 0 0 255 255 255 0 0 0 0 255 255 255 0 0 0 0 255 255 255 0 0 0 0 255 255 255 0 0
父主题: 基础运算