QQ登录

只需一步,快速开始

halcon compare_obj函数介绍

[ 复制链接 ]
compare_obj(Objects1, Objects2 : : Epsilon : IsEqual)
compare_obj比较图像对象的相等性。
图像对象以image、region或XLDs的元组(可能是混合的)形式,
在Objects1和Objects2两个输入参数中传递.
两参数内的图像对象一一相互对比。
如果传递的两个对象元组长度相同,并且所有对象都相等,则将参数IsEqual设置为1,否则设置为0。
根据输入对象的类型,必须满足对应的条件。下面列出了每个可能的图像对象的条件:


image
对于所有通道,各像素点的灰度值不能相差超过Epsilon
注意,图像只在它们的域(ROI)内进行比较,并且只有当它们具有相同的域(ROI)时,它们才相等。


Regions
区域得相同,Epsilon参数无效。

XLD contours:
XLD轮廓必须具有相同点数和属性。
点坐标和属性值的差值不能超过Epsilon。


XLD polygons:
XLD多边形必须具有相同数量的线段。
这些段的长度和方向以及控制点的坐标之间的差不得超过Epsilon

XLD parallels and extended XLD parallels:
XLD平行线必须具有第一个多边形(P1)和第二个多边形(P2)的平行线的起始和结束线段的相同索引,以及指向底层轮廓的相同指针。

Modified XLD parallels:
对于修改后的XLD平行线,适用与XLD平行线和扩展后的XLD平行线相同的条件。
此外,平行多边形的线段之间的距离必须相同。
注意,compare_obj比较所有对象的实际内容。
相反,test_equal_obj只比较区域的实际内容,
而对于所有其他对象,则比较它们在内存中的位置。


例程
read_image (Images, ['particle','particle','monkey'])
select_obj (Images, Image1, 1)
select_obj (Images, Image2, 2)
compare_obj (Image1, Image2, 1, CompareObj)




回复

使用道具 举报

快速回复 返回列表 客服中心 搜索