matlab中有名为rectint的函数功能是判断同一坐标系下两个矩形是否相交,返回交叠部分的面积大小,比较好用,且能用于多对矩形一起判断。最近仿照其改写了个C版本的,简单但很实用,一次判断一对矩形。
参数为自定义的rect 结构体;
struct rect { int upleftx; int uplefty; int downrightx; int downrighty; } int rectint(rect a,rect b) { int length = max(0,(min(a.downrightx,b.downrightx )-max(a.upleftx ,b.upleftx ))); int height = max(0,(min(a.downrighty ,b.downrighty )-max(a.uplefty ,b.uplefty))); int area = length*height; return area; }
注:matlab 中此函数坐标原点为右下方,但图像处理中大多左上角为(0,0)所以此函数更适合于图像处理中判断矩形框是否交叠。
matlab 中 rectint()函数的C版本
最新推荐文章于 2022-04-05 20:13:21 发布