获取ROI区域 - GetROIRegion
函数简介
获取ROI(Region of Interest)区域的坐标信息。此函数可以获取图像中ROI区域的边界坐标,返回区域的左上角和右下角坐标值,用于确定感兴趣区域的具体位置和大小。
接口名称
GetROIRegion
DLL调用
int GetROIRegion(long instance, long ptr, int* x1, int* y1, int* x2, int* y2)
参数说明
参数名 | 类型 | 说明 |
---|---|---|
instance | 长整数型 | OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。 |
ptr | 长整数型 | 图像指针,由图像处理函数返回 |
x1 | 整数指针 | 输出参数,ROI区域左上角的X坐标 |
y1 | 整数指针 | 输出参数,ROI区域左上角的Y坐标 |
x2 | 整数指针 | 输出参数,ROI区域右下角的X坐标 |
y2 | 整数指针 | 输出参数,ROI区域右下角的Y坐标 |
示例
// 获取图像的ROI区域坐标
long image = LoadImage(ola, "D:\\test\\image.png");
if (image != 0) {
int x1, y1, x2, y2;
if (GetROIRegion(ola, image, &x1, &y1, &x2, &y2) == 1) {
printf("ROI区域坐标: (%d, %d) - (%d, %d)\n", x1, y1, x2, y2);
printf("ROI区域大小: %d x %d\n", x2 - x1, y2 - y1);
// 可以根据ROI坐标进行进一步处理
long roiImage = Cropped(ola, image, x1, y1, x2, y2);
if (roiImage != 0) {
ShowImage(roiImage);
FreeImagePtr(ola, roiImage);
}
}
FreeImagePtr(ola, image);
}
// 获取截图ROI区域
long screen = GetScreenDataPtr(ola, 0, 0, 1920, 1080);
if (screen != 0) {
int x1, y1, x2, y2;
if (GetROIRegion(ola, screen, &x1, &y1, &x2, &y2) == 1) {
printf("屏幕ROI区域: (%d, %d) - (%d, %d)\n", x1, y1, x2, y2);
// 使用ROI坐标进行精确截图
long roiScreen = GetScreenDataPtr(ola, x1, y1, x2 - x1, y2 - y1);
if (roiScreen != 0) {
// 处理ROI截图
FreeImagePtr(ola, roiScreen);
}
}
FreeImagePtr(ola, screen);
}
返回值
整数型:
- 成功:返回1
- 失败:返回0
注意事项
- 坐标系统基于图像坐标系,原点在左上角
- x1, y1 为ROI区域的左上角坐标
- x2, y2 为ROI区域的右下角坐标
- ROI区域大小计算为 (x2-x1) × (y2-y1)
- 此函数通常与 FastROI 函数配合使用
- 适用于需要获取图像有效区域边界信息的场景
- 返回的坐标可以用于后续的图像裁剪、区域分析等操作