opencv中的size与shape函数
时间: 2024-05-06 12:15:40 浏览: 73
在OpenCV中,Size和shape函数都可以用来获取图像的尺寸信息,但是两者的使用方法略有不同。
Size是OpenCV中的一个类,用来表示图像的尺寸。它的构造函数有两个参数,分别是宽度和高度。例如,下面的代码创建了一个Size对象,表示宽度为640,高度为480的图像:
```
cv::Size size(640, 480);
```
可以通过Size对象的width和height成员变量获取图像的宽度和高度:
```
int width = size.width;
int height = size.height;
```
而shape函数则是numpy库中的一个函数,它用来获取数组的形状信息。在OpenCV中,图像通常被表示为numpy数组,因此shape函数可以用来获取图像的尺寸信息。例如,下面的代码创建了一个大小为640x480的黑色图像,并打印出其形状信息:
```
cv::Mat image = cv::Mat::zeros(480, 640, CV_8UC3);
std::cout << "Image shape: " << image.size() << std::endl;
```
输出结果为:"Image shape: [480 x 640]"。可以看到,shape函数返回的是一个元组,包含了数组的各个维度的长度。在OpenCV中,Mat类的size函数返回的也是图像的尺寸信息,但它返回的是一个Size对象,而不是一个元组。因此,如果只需要获取图像的尺寸信息,建议使用Size类的对象或Mat类的size函数。
相关问题
opencv的erode的核函数怎么设置
在使用OpenCV的erode函数时,需要定义一个核函数(kernel),可以使用cv::getStructuringElement()函数生成不同形状的核函数。其中,参数shape表示核函数的形状,可以是矩形、椭圆形和十字形等,size表示核函数的大小。
例如,定义一个3*3的十字形核函数可以使用如下代码:
```
cv::Mat kernel = cv::getStructuringElement(cv::MORPH_CROSS, cv::Size(3, 3));
```
然后,将生成的核函数作为参数传入erode函数的第三个参数即可。
```
cv::erode(src, dst, kernel);
```
中文 opencv getStructuringElement函数
getStructuringElement函数是OpenCV中的一个函数,用于创建一个结构元素。它有以下参数:
① shape:结构元素的形状,可以是矩形、十字形、椭圆形等。
② ksize:结构元素的大小。
③ anchor:结构元素的锚点位置。
下面是它的函数定义:
Mat getStructuringElement(int shape, Size ksize, Point anchor=Point(-1,-1));
其中,shape是结构元素的形状,ksize是结构元素的大小,anchor是结构元素的锚点位置。
例如,创建一个3x3的十字形结构元素,可以这样写:
Mat element = getStructuringElement(MORPH_CROSS, Size(3, 3));
阅读全文