移除图片差异部分 - RemoveImageDiff
函数简介
比较两张图片,移除它们之间的差异部分,将差异部分设置为透明。此函数可用于查找画面中不变的坐标点,适用于图像对比、变化检测等场景。函数会保留两张图片中完全相同的部分,将不同的部分设置为透明。
接口名称
RemoveImageDiff
DLL调用
long RemoveImageDiff(long ola, long imgPtr1, long imgPtr2)
参数定义:
ola
(长整型数): OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。imgPtr1
(长整型数): 第一张图片的OLAImage对象地址imgPtr2
(长整型数): 第二张图片的OLAImage对象地址
示例:
// 加载两张要比较的图片
long image1 = LoadImage(ola, "image1.png");
long image2 = LoadImage(ola, "image2.png");
if (image1 != 0 && image2 != 0) {
// 移除差异部分
long resultImage = RemoveImageDiff(ola, image1, image2);
if (resultImage != 0) {
// 保存处理后的图片
SaveImageFromPtr(ola, resultImage, "result.png");
// 释放内存
FreeImagePtr(ola, resultImage);
}
// 释放原始图片内存
FreeImagePtr(ola, image1);
FreeImagePtr(ola, image2);
}
COM调用
long RemoveImageDiff(long imgPtr1, long imgPtr2)
参数定义:
imgPtr1
(长整型数): 第一张图片的OLAImage对象地址imgPtr2
(长整型数): 第二张图片的OLAImage对象地址
示例:
# 加载两张要比较的图片
image1 = ola.LoadImage("image1.png")
image2 = ola.LoadImage("image2.png")
if image1 and image2:
# 移除差异部分
resultImage = ola.RemoveImageDiff(image1, image2)
if resultImage:
# 保存处理后的图片
ola.SaveImageFromPtr(resultImage, "result.png")
# 释放内存
ola.FreeImagePtr(resultImage)
# 释放原始图片内存
ola.FreeImagePtr(image1)
ola.FreeImagePtr(image2)
返回值
长整型数:
- 成功:返回处理后的OLAImage对象地址
- 失败:返回0
注意事项
- 两张图片必须具有相同的尺寸,否则将返回失败
- 处理后的图片中,相同的部分保持原样,不同的部分将被设置为透明
- 原始图片不会被修改,函数返回新的图片对象
- 使用完毕后必须调用 FreeImagePtr 释放内存
- 建议在使用前检查图片指针的有效性
- 处理大图片时注意内存使用
- 图片比较是像素级的精确比较
- 如果需要模糊比较,请使用其他相关函数
- 建议在比较前确保两张图片的格式相同
- 透明部分可以用于后续的图像处理或坐标点提取