opencv所用函数
时间: 2024-07-02 09:01:20 浏览: 73
OpenCV(Open Source Computer Vision Library)是一个广泛使用的计算机视觉库,提供了一套丰富的函数集用于图像处理、计算机视觉和机器学习任务。以下是一些常用OpenCV函数及其功能的简介:
1. `cv2.imread()`:用于读取图像文件,返回一个BGR格式的Mat对象。
2. `cv2.imshow()`:显示图像到窗口,通常配合`cv2.waitKey()`一起使用,实现图像的交互式显示。
3. `cv2.resize()`:调整图像尺寸,常用于缩放或改变分辨率。
4. `cv2.cvtColor()`:颜色空间转换,如从BGR转灰度(`cv2.COLOR_BGR2GRAY`)。
5. `cv2.threshold()`:二值化操作,用于分割图像中的前景和背景。
6. `cv2.findContours()`:寻找图像中的轮廓,用于形状检测和分析。
7. `cv2.rectangle()`:在图像上绘制矩形。
8. `cv2.HuMoments()`和`cv2.compareHist()`:用于计算图像特征和比较两个图像的相似度。
9. `cv2.detectMultiScale()`:目标检测,比如人脸检测、行人检测等。
10. `cv2.imshow()`:在窗口中显示图像,`cv2.waitKey()`用于暂停程序直到用户按下键盘键。
相关问题
上述代码所用的opencv库中的函数
上述代码中使用了OpenCV库中的以下函数:
- `cv2.imread`: 读取图像文件,返回一个`numpy.ndarray`类型的图像矩阵。
- `cv2.medianBlur`: 对图像进行中值滤波,去除噪声。
- `cv2.imshow`: 在窗口中显示图像。
- `cv2.waitKey`: 等待键盘按键事件,返回按键的ASCII码值。
- `cv2.destroyAllWindows`: 销毁所有窗口。
这些函数都是OpenCV库中常用的函数,可以根据实际需求进行调用。需要注意的是,在使用OpenCV库时,需要先安装并导入该库,可以使用以下命令来安装:
```bash
pip install opencv-python
```
在Python代码中,可以使用以下语句导入OpenCV库:
```python
import cv2
```
opencv标定 畸变
OpenCV中的相机标定方法可以对径向畸变进行有效校正。在使用相机标定方法时,需要提供内参和畸变系数。内参是相机的内部参数,包括焦距、主点坐标等,畸变系数描述了图像的径向畸变和切向畸变。
在OpenCV中,可以通过以下代码实现相机标定和畸变校正:
```cpp
#include <opencv2/calib3d.hpp>
using namespace std;
using namespace cv;
// 定义相机标定的相关常量设置与变量
vector<string> files;
glob("D:/images/camera2d", files);
vector<vector<Point2f>> imagePoints;
vector<vector<Point3f>> objectPoints;
TermCriteria criteria = TermCriteria(TermCriteria::EPS | TermCriteria::MAX_ITER, 30, 0.001);
int numCornersHor = 7;
int numCornersVer = 7;
int numSquares = 50;
vector<Point3f> obj;
for (int i = 0; i < numCornersHor; i++) {
for (int j = 0; j < numCornersVer; j++) {
obj.push_back(Point3f((float)j * numSquares, (float)i * numSquares, 0));
}
}
// 进行相机标定
Mat cameraMatrix, distCoeffs;
vector<Mat> rvecs, tvecs;
calibrateCamera(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs, rvecs, tvecs, criteria);
// 畸变校正
for (int i = 0; i < files.size(); i++) {
Mat dst;
Mat image = imread(files[i]);
undistort(image, dst, cameraMatrix, distCoeffs);
imshow("image", image);
imshow("undistortimage", dst);
waitKey(1000);
}
```
上述代码中,首先使用`glob`函数加载相机标定所用的图像文件。然后,定义了图像坐标系和世界坐标系中的点,用于相机标定。通过`calibrateCamera`函数进行相机标定,得到相机内参和畸变系数。最后,使用`undistort`函数实现畸变校正,并显示畸变前后的图像。