
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.2.4 案例14:Rect结构
OpenCV中定义了矩形的表示类Rect,和Point类似,Rect的定义如下:

如上定义了不同数据类型的矩形,有int类型的Rect2i、float类型的Rect2f、double类型的Rect2d。
模板类Rect_的定义如下:


案例中展示了Rect对象的构造,Rect顶点坐标、宽高、面积等信息的获取操作,以及矩形是否包含点的判断操作,案例代码如下:


执行结果如图3.14所示。

图3.14
如图3.14所示,r1构造后没有进行初始化,因此为空;r2构造时传入了左上角的坐标(10,10),矩形宽度20,矩形高度20;点pt1在矩形r2内部,因此r2.contains(pt1)返回为true,打印操作的判断条件为真。
OpenCV Python语言中的Rect是通过tuple类型的数据表示,即左上角点坐标(x,y)及矩形宽高4个值表示的Rect为(x, y, w, h)的形式,在需要传入Rect数据类型的地方,可以按照tuple类型的数据传入。