本文主要是介绍Opencv学习记录:函数Size()、Rect()、Mat.type()、minMaxLoc(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
常用函数目录
- Size()函数
- Rect()函数
- Mat数据类型对照表(Mat.type())
- minMaxLoc()函数
Size()函数
对于一个目标Mat Image来讲,若想Image的像素矩阵大小是m×n的,即有m行n列,实现方法如下:
Image(Size(n,m),Type); // 即先列数再行数
Image = zeros(n, m, Type); // 即先行数再列数
Rect()函数
当使用 Rect() 选取 ROI 时,使用方法如下:
Rect(x0, y0, width, height); //此时的height是行数,width是列数
Mat数据类型对照表(Mat.type())
Mat存在各种类型,其中Mat有一个type()函数可以返回该Mat的类型。类型表示了矩阵中元素的类型以及矩阵的通道个数,它是一系列的预定义的常量,其命名规则为CV_(位数)+(数据类型)+(通道数)。具体的有以下值:
Code | C1 | C2 | C3 | C4 |
---|---|---|---|---|
CV_8U | 0 | 8 | 16 | 24 |
CV_8S | 1 | 9 | 17 | 25 |
CV_16U | 2 | 10 | 18 | 26 |
CV_16S | 3 | 11 | 19 | 27 |
CV_32S | 4 | 12 | 20 | 28 |
CV_32F | 5 | 13 | 21 | 29 |
CV_64F | 6 | 14 | 22 | 30 |
minMaxLoc()函数
minMaxLoc()函数可以在一幅图像上查找最大最小值及其位置坐标。
函数声明:
void minMaxLoc(InputArray src, double* minVal, double* maxVal=0, Point* minLoc=0, Point* maxLoc=0, InputArray mask=noArray() )
参数:最大值maxVlaue、最小值minValue、最大值位置maxLoc、最小值位置minLoc等。
(一些不需要的参数,在调用时直接设置为0即可)。最后一个参数是mask,默认为noArray()。
一个例子:
int main()
{Mat img = imread("D:/YHImage/lena.jpg",0);Mat mask(img.rows, img.cols, img.type(), Scalar::all(0));mask(Rect(150, 50, 100, 100)) = 255 ;//设定搜索区域imshow("mask", mask);imshow("img", img);double maxv;minMaxLoc(img, 0, &maxv, 0, 0, mask);cout << "maxvalue = " << maxv << endl;waitKey();return 0;
}
这篇关于Opencv学习记录:函数Size()、Rect()、Mat.type()、minMaxLoc()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!