学习OpenCV 4:基于Python的算法实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.3.4 案例19:比较运算

OpenCV提供了矩阵比较运算函数,如两个矩阵的比较(compare),求最大值(max)、最小值(min),排序(sort),其定义如下:

参数说明如下。

● src1:输入矩阵1。

● src2:输入矩阵2。

● cmpop:比较方式。

● dst:输出结果(返回值)。

参数说明如下。

● src1:输入矩阵1。

● src2:输入矩阵2。

● dst:输出矩阵(返回值)。

参数说明如下。

● src:输入矩阵。

● mask:掩模。

● minVal:输出的最小值(返回值)。

● maxVal:输出的最大值(返回值)。

● minLoc:输出的最小值位置(返回值)。

● maxLoc:输出的最大值位置(返回值)。

参数说明如下。

● src:输入矩阵。

● flags:排序方式,由SortFlags定义(见3.1节)。

● dst:输出排序结果。

比较两个矩阵的案例代码如下:

比较运算的结果如下:

compare函数执行两个矩阵的逐元素比较操作,根据CmpTypes定义的比较方式,如果比较结果为true,则输出矩阵中该位置的值为255;否则为0。compare函数中的前两个参数为输入矩阵src1、src2;第三个参数为cmpop,该值由CmpTypes定义,表示比较方式,其取值如下:

求两个矩阵中的最大值和最小值的案例代码如下:

结果输出如下:

OpenCV提供了获取矩阵中最小值和最大值及其位置的函数minMaxLoc,使用的案例代码如下:

输出结果如下:

minMaxLoc函数调用后的返回值为tuple类型,其中第一个值为最小值,第二个值为最大值,第三个值为最小值的坐标,第四个值为最大值的坐标。

排序案例代码如下:

升序排序结果如下: