opencv学习——函数

cv::imread函数图像处理

Mat cv::imread	(const String & filename,int flags = IMREAD_COLOR)

返回值,Mat 类型, 即返回读取的图像,读取图像失败时返回一个空的矩阵对象(Mat::data == NULL)
参数1 filename, 读取的图片文件名,可以使用相对路径或者绝对路径,但必须带完整的文件扩展名(图片格式后缀)
参数2 flags, 一个读取标记,用于选择读取图片的方式,默认值为IMREAD_COLOR,flag值的设定与用什么颜色格式读取图片有关
在这里插入图片描述

cv::cvtColor()颜色空间转换

cv::cvtColor()用于将图像从一个颜色空间转换到另一个颜色空间的转换.
void cv::cvtColor(
      cv::InputArray src, // 输入图像
      cv::OutputArray dst, // 输出图像
      int code, // 颜色空间转换
      int dstCn = 0 // 目标图像通道数,如果取值为0,则由src和code决定
     );

int code 常见转换如下在这里插入图片描述

findChessboardCorners() 棋盘格角点检测

bool findChessboardCorners( InputArray image, //输入的棋盘
### 关于 OpenCV 第九章 学习资料 OpenCV 的第九章通常涉及项目实战与代码整合的内容,重点在于如何将之前章节所学到的知识应用到实际场景中。这一部分的学习目标是通过具体的案例分析和实践操作加深对 OpenCV 功能的理解。 以下是关于 OpenCV 第九章学习的一些核心知识点以及参考资料: #### 1. **项目实战背景** 在第九章中,主要讨论的是基于 OpenCV 的实际应用场景开发。这些场景可能包括但不限于图像处理、视频流分析、物体检测等。具体来说,可以通过以下方式实现项目的构建[^2]: - 使用 `cv2.imread()` 函数读取图片并进行初步处理。 - 利用形态学操作(如腐蚀、膨胀)增强图像特征。 - 应用边缘检测算法(如 Canny 边缘检测器)提取感兴趣区域。 ```python import cv2 img = cv2.imread("shelf.jpg") gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) edges = cv2.Canny(gray, 50, 150) kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5)) edges = cv2.dilate(edges, kernel, iterations=1) contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) for contour in contours: x, y, w, h = cv2.boundingRect(contour) if 50 < w < 200 and 20 < h < 100: cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2) cv2.imshow("Price Tags", img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 这段代码展示了如何利用 OpenCV 进行简单的物体检测,并绘制边界框标记特定区域[^2]。 --- #### 2. **深度学习集成** 除了传统的计算机视觉技术外,第九章还介绍了如何结合深度学习框架完成更复杂的任务。例如,可以使用预训练模型(如 AlexNet 或其他 CNN 架构)来进行图像分类或目标检测[^3]。基本流程如下: - 加载配置文件和预训练权重。 - 将输入图像转换为适合网络的格式(Blob 数据结构)。 - 设置模型输入并运行推理过程。 - 解析输出结果以获取最终预测值。 示例代码片段展示了一个典型的深度学习管道设计方法[^3]: ```python import cv2 import numpy as np model_path = 'path/to/model.caffemodel' config_path = 'path/to/deploy.prototxt' net = cv2.dnn.readNetFromCaffe(config_path, model_path) image = cv2.imread('input_image.jpg') blob = cv2.dnn.blobFromImage(image, scalefactor=1.0, size=(227, 227), mean=(104, 117, 123)) net.setInput(blob) detections = net.forward() for i in range(detections.shape[2]): confidence = detections[0, 0, i, 2] if confidence > 0.5: box = detections[0, 0, i, 3:7] * np.array([width, height, width, height]) startX, startY, endX, endY = box.astype("int") cv2.rectangle(image, (startX, startY), (endX, endY), (0, 255, 0), 2) cv2.imshow("Output", image) cv2.waitKey(0) ``` 此脚本说明了如何调用深度神经网络执行目标定位功能。 --- #### 3. **推荐资源** 为了更好地掌握 OpenCV 第九章的内容,建议参考以下材料: - 官方文档:https://docs.opencv.org/ 提供详尽的功能描述和技术细节。 - 教程书籍《Learning OpenCV》(即所谓的“蝴蝶书”),其中涵盖了大量实用技巧[^1]。 - 在线课程平台上的专项培训系列,比如 Coursera 或 Udemy 上的相关课程。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值