opencv数据类型及opencv数据处理函数
时间: 2023-11-24 08:53:12 浏览: 57
以下是关于OpenCV数据类型及数据处理函数的介绍:
OpenCV数据类型:
1. cv::Mat:OpenCV中最常用的数据类型,用于表示图像和矩阵等数据。
2. cv::Point、cv::Point2f、cv::Point3i:用于表示二维或三维坐标点。
3. cv::Size、cv::Size2f、cv::Size3i:用于表示二维或三维大小。
4. cv::Rect、cv::Rect2f、cv::Rect3i:用于表示矩形区域。
5. cv::Scalar:用于表示颜色或灰度值。
OpenCV数据处理函数:
1. cv::cvtColor:用于颜色空间转换。
2. cv::resize:用于图像缩放。
3. cv::threshold:用于图像二值化。
4. cv::GaussianBlur:用于高斯模糊。
5. cv::Sobel:用于图像边缘检测。
6. cv::matchTemplate:用于模板匹配。
7. cv::HoughLines、cv::HoughCircles:用于直线和圆检测。
8. cv::findContours:用于轮廓检测。
相关问题
opencv归一化处理函数
OpenCV中有两个常用的归一化函数,分别是normalize()和cv::normalize()。
normalize()函数原型:
```cpp
void normalize(InputArray src, OutputArray dst, double alpha = 1, double beta = 0, int norm_type = NORM_L2, int dtype = -1, InputArray mask = noArray() )
```
其中,参数说明如下:
- src:输入矩阵(可以是单通道或多通道的矩阵);
- dst:输出矩阵,与输入矩阵有相同的尺寸和类型;
- alpha:缩放系数,用于乘以每个元素;
- beta:偏移量,用于加到每个元素上;
- norm_type:归一化类型,常用的有NORM_INF、NORM_L1、NORM_L2等;
- dtype:输出矩阵的数据类型,如果为负数,则输出矩阵与输入矩阵有相同的数据类型;
- mask:掩码矩阵,处理时只对掩码矩阵中为1的元素进行处理。
cv::normalize()函数原型:
```cpp
void cv::normalize ( InputArray src, OutputArray dst, double alpha = 1, double beta = 0, int norm_type = NORM_L2, int dtype = -1, InputArray mask = noArray() )
```
其中,参数说明与normalize()函数一致。这两个函数的区别是normalize()函数是OpenCV 2.x版本中的函数,而cv::normalize()函数是OpenCV 3.x版本中的函数,推荐使用后者。
opencv 数据范围限定
在 OpenCV 中,可以使用 `cv::normalize()` 函数来对图像数据进行范围限定,以便更好地展示和处理图像。该函数的原型如下:
```cpp
void cv::normalize(
InputArray src,
OutputArray dst,
double alpha = 0,
double beta = 1,
int norm_type = NORM_L2,
int dtype = -1,
InputArray mask = noArray()
);
```
其中,`src` 表示输入矩阵,`dst` 表示输出矩阵,`alpha` 和 `beta` 表示输出矩阵的最小值和最大值,`norm_type` 表示归一化类型,`dtype` 表示输出矩阵的数据类型,`mask` 表示掩膜。
举个例子,如果想将一幅图像的像素值限定在 [0, 255] 的范围内,可以使用以下代码:
```cpp
cv::Mat image = cv::imread("image.jpg");
cv::Mat image_norm;
cv::normalize(image, image_norm, 0, 255, cv::NORM_MINMAX);
cv::imshow("Normalized Image", image_norm);
cv::waitKey(0);
```
在上述代码中,`normalize()` 函数将图像像素值限定在 [0, 255] 的范围内,并将结果保存在 `image_norm` 中。然后,使用 `imshow()` 函数将结果展示出来。
需要注意的是,`normalize()` 函数会改变输入矩阵的值,因此如果需要保留原始图像的像素值,需要先将原始图像复制一份再进行处理。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)