opencv中的常用的100个API

news2024/12/25 6:53:36

以下是 OpenCV 中常用的 100 个 API,这些 API 涉及图像读取、处理、特征提取、绘图、视频处理等常见操作:


1. 图像操作

  1. cv2.imread(filename, flags) - 读取图像。
  2. cv2.imwrite(filename, img) - 保存图像。
  3. cv2.imshow(window_name, img) - 显示图像。
  4. cv2.cvtColor(src, code) - 转换图像颜色空间。
  5. cv2.resize(src, dsize, fx, fy, interpolation) - 缩放图像。
  6. cv2.rotate(src, rotateCode) - 旋转图像。
  7. cv2.flip(src, flipCode) - 翻转图像。
  8. cv2.split(src) - 拆分通道。
  9. cv2.merge(mv) - 合并通道。
  10. cv2.copyMakeBorder(src, top, bottom, left, right, borderType, value) - 添加边框。

2. 图像变换

  1. cv2.warpAffine(src, M, dsize) - 仿射变换。
  2. cv2.getAffineTransform(srcPoints, dstPoints) - 获取仿射变换矩阵。
  3. cv2.warpPerspective(src, M, dsize) - 透视变换。
  4. cv2.getPerspectiveTransform(srcPoints, dstPoints) - 获取透视变换矩阵。
  5. cv2.remap(src, map1, map2, interpolation) - 重映射。
  6. cv2.resize(src, dsize) - 调整大小。
  7. cv2.getRotationMatrix2D(center, angle, scale) - 获取旋转矩阵。
  8. cv2.invertAffineTransform(M) - 仿射矩阵求逆。
  9. cv2.convertScaleAbs(src, alpha, beta) - 调整对比度和亮度。
  10. cv2.normalize(src, dst, alpha, beta, norm_type) - 归一化。

3. 绘图功能

  1. cv2.line(img, pt1, pt2, color, thickness) - 画线。
  2. cv2.rectangle(img, pt1, pt2, color, thickness) - 画矩形。
  3. cv2.circle(img, center, radius, color, thickness) - 画圆。
  4. cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness) - 画椭圆。
  5. cv2.polylines(img, pts, isClosed, color, thickness) - 画多边形。
  6. cv2.fillPoly(img, pts, color) - 填充多边形。
  7. cv2.putText(img, text, org, fontFace, fontScale, color, thickness) - 添加文本。

4. 图像阈值

  1. cv2.threshold(src, thresh, maxval, type) - 图像二值化。
  2. cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C) - 自适应阈值。
  3. cv2.inRange(src, lowerb, upperb) - 范围筛选。

5. 图像平滑与滤波

  1. cv2.blur(src, ksize) - 均值滤波。
  2. cv2.GaussianBlur(src, ksize, sigmaX) - 高斯滤波。
  3. cv2.medianBlur(src, ksize) - 中值滤波。
  4. cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace) - 双边滤波。
  5. cv2.filter2D(src, ddepth, kernel) - 任意核卷积。

6. 边缘检测与轮廓

  1. cv2.Canny(image, threshold1, threshold2) - 边缘检测。
  2. cv2.findContours(image, mode, method) - 查找轮廓。
  3. cv2.drawContours(image, contours, contourIdx, color, thickness) - 绘制轮廓。
  4. cv2.arcLength(contour, closed) - 计算轮廓周长。
  5. cv2.contourArea(contour) - 计算轮廓面积。
  6. cv2.approxPolyDP(curve, epsilon, closed) - 多边形逼近。
  7. cv2.boundingRect(points) - 计算矩形边界。
  8. cv2.minEnclosingCircle(points) - 最小包围圆。
  9. cv2.convexHull(points) - 凸包。
  10. cv2.isContourConvex(contour) - 判断是否为凸形。

7. 形态学操作

  1. cv2.erode(src, kernel, iterations) - 腐蚀。
  2. cv2.dilate(src, kernel, iterations) - 膨胀。
  3. cv2.morphologyEx(src, op, kernel) - 形态学操作(开闭运算等)。
  4. cv2.getStructuringElement(shape, ksize) - 获取结构元素。

8. 图像直方图

  1. cv2.calcHist(images, channels, mask, histSize, ranges) - 计算直方图。
  2. cv2.equalizeHist(src) - 直方图均衡化。
  3. cv2.createCLAHE(clipLimit, tileGridSize) - 自适应直方图均衡化。

9. 特征检测与描述

  1. cv2.SIFT_create() - SIFT特征检测。
  2. cv2.ORB_create() - ORB特征检测。
  3. cv2.FastFeatureDetector_create() - FAST特征检测。
  4. cv2.MSER_create() - MSER特征检测。
  5. cv2.BRISK_create() - BRISK特征检测。
  6. cv2.SimpleBlobDetector_create() - 简单Blob检测。
  7. cv2.goodFeaturesToTrack(src, maxCorners, qualityLevel, minDistance) - 检测角点。

10. 特征匹配

  1. cv2.BFMatcher(normType) - 暴力匹配器。
  2. cv2.FlannBasedMatcher() - FLANN匹配器。
  3. cv2.drawMatches(img1, kp1, img2, kp2, matches, outImg) - 绘制匹配结果。

11. 视频操作

  1. cv2.VideoCapture(source) - 打开视频文件或摄像头。
  2. cv2.VideoWriter(filename, fourcc, fps, frameSize) - 保存视频。
  3. cap.read() - 读取视频帧。
  4. cap.isOpened() - 检查视频是否打开。
  5. cap.release() - 释放视频资源。

12. 几何变换与数学操作

  1. cv2.addWeighted(src1, alpha, src2, beta, gamma) - 图像加权。
  2. cv2.bitwise_and(src1, src2) - 按位与。
  3. cv2.bitwise_or(src1, src2) - 按位或。
  4. cv2.bitwise_not(src) - 按位取反。
  5. cv2.bitwise_xor(src1, src2) - 按位异或。
  6. cv2.minMaxLoc(src) - 最值定位。
  7. cv2.reduce(src, dim, rtype) - 归约操作。

13. 模板匹配

  1. cv2.matchTemplate(image, templ, method) - 模板匹配。
  2. cv2.minMaxLoc(result) - 获取匹配位置。

14. 深度学习相关

  1. cv2.dnn.readNetFromCaffe(protoTxt, model) - 读取Caffe模型。
  2. cv2.dnn.readNetFromTensorflow(model, config) - 读取TensorFlow模型。
  3. cv2.dnn.readNetFromONNX(model) - 读取ONNX模型。
  4. cv2.dnn.blobFromImage(image, scalefactor, size, mean, swapRB, crop) - 图像转换为深度学习输入。

15. 基本工具

  1. cv2.waitKey(delay) - 等待键盘输入。
  2. cv2.destroyAllWindows() - 销毁所有窗口。
  3. cv2.getTickCount() - 获取时间戳。
  4. cv2.getTickFrequency() - 获取时间频率。
  5. cv2.setMouseCallback(window_name, callback) - 设置鼠标回调。

16. 深入功能

  1. cv2.calcOpticalFlowFarneback(prev, next, flow, pyrScale, levels, winsize, iterations, polyN, polySigma, flags) - 光流计算。
  2. cv2.cornerHarris(src, blockSize, ksize, k) - Harris角点检测。
  3. cv2.cornerSubPix(image, corners, winSize, zeroZone, criteria) - 亚像素角点优化。

17. 自定义与扩展

  1. cv2.getTrackbarPos(trackbarname, winname) - 获取滑块值。
  2. cv2.createTrackbar(trackbarname, winname, value, count, onChange) - 创建滑块。
  3. cv2.fillConvexPoly(img, points, color) - 填充凸多边形。
  4. cv2.fillPoly(img, pts, color) - 填充多边形。

18. 图像与视频编码解码

  1. cv2.imencode(ext, img) - 编码图像。
  2. cv2.imdecode(buf, flags) - 解码图像。
  3. cv2.VideoWriter_fourcc(c1, c2, c3, c4) - 获取视频编码器。

19. 其他实用功能

  1. cv2.phase(x, y) - 计算幅角。
  2. cv2.cartToPolar(x, y) - 笛卡尔坐标到极坐标转换。
  3. cv2.polarToCart(magnitude, angle) - 极坐标到笛卡尔坐标转换。
  4. cv2.kmeans(data, K, bestLabels, criteria, attempts, flags) - KMeans 聚类。
  5. cv2.connectedComponents(image) - 连通域分析。

总结

以上 100 个 OpenCV API 覆盖了 OpenCV 的主要功能模块,帮助开发者快速理解 OpenCV 的强大功能。在实际使用中,可以根据需求查阅官方文档获取更多详细信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2265157.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go C编程 第6课 无人机 --- 计算旋转角

旋转的秘密---认识角度 rt、lt命令学习 goc电子课程 一、编程步骤 第一步 第二步 第三步 第四步 二、画“四轴无人机” (一)、画第一根机轴 (二)、画第二根机轴 (三)、画完整的无人机 三、画“多轴无人…

v3s点RGB屏 40pin 800x480,不一样的点屏,不通过chosen。

一、背景、目的、简介。 一般来说,通过uboot将屏幕参数传给kernel,是通过修改设备树。 uboot和kernel都需要屏幕点亮。uboot侧重于显示一张图片。而kernel则多是动画。 在这里,我先是找到了一个裸机点屏的代码。将其编译成静态库后&#x…

【编译原理】编译原理知识点汇总·语法分析器(消除左递归、消除二义性、自顶向下语法分析、自下向上语法分析)

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀编译原理_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2. …

golang 并发--goroutine(四)

golang 语言最大的特点之一就是语法上支持并发,通过简单的语法很容易就能创建一个 go 程,这就使得 golang 天生适合写高并发的程序。这一章节我们就主要介绍 go 程,但是要想完全理解 go 程我们需要深入研究 GPM 模型,关于 GPM 模型…

Wireshark协议相关功能:过滤、启用/禁用、导出和统计查看

简述 Wireshark 是一个非常强大的网络分析工具,广泛用于网络故障排查、安全分析、协议分析等任务。在使用 Wireshark 进行网络抓包和协议分析时,掌握一些基本的操作技巧对于提高效率和准确性至关重要。本文将介绍 Wireshark 中如何进行协议相关的操作&a…

渗透Vulnhub-DC-9靶机

本篇文章旨在为网络安全渗透测试行业靶机教学。通过阅读本文,读者将能够对渗透Vulnhub系列DC-6靶机有定的了解 一、信息收集阶段 DC-9靶场信息: DC-9靶场介绍: https://www.vulnhub.com/entry/dc-9,412/ DC-9靶场下载: https://download.vu…

【Linux系列】Shell 命令:`echo ““ > img.sh`及其应用

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

云图库平台(三)——后端用户模块开发

需求分析:对于用户模块而言,通常要实现下列功能: 用户注册:用户输入账号、密码、确认密码进行注册账号用户登录:用户通过输入账号、密码登录注册账号获取当前登录用户信息:即得到当前已登录用户的信息用户…

怎么设置电脑密码?Windows和Mac设置密码的方法

为电脑设置密码是保护个人信息安全的重要措施。无论是Windows系统还是MacOS系统,设置密码的步骤都相对简单,但需要根据不同的操作系统选择不同的方法。 一、Windows系统电脑密码设置 方法一:通过控制面板设置账户密码 点击桌面左下角的“开…

思考: 与人交际

前晚可能是因为我和某个曾经的同学(我认为是朋友,但是它真的很讨厌,现在觉得它在PUA很多人)发生了一件事情,现在没关系了,算是到此结束了,再也不见。 让我看清楚了人和人的交际需要什么&#xf…

突发!!!GitLab停止为中国大陆、港澳地区提供服务,60天内需迁移账号否则将被删除

GitLab停止为中国大陆、香港和澳门地区提供服务,要求用户在60天内迁移账号,否则将被删除。这一事件即将引起广泛的关注和讨论。以下是对该事件的扩展信息: 1. 背景介绍:GitLab是一家全球知名的软件开发平台,提供代码托…

vulnhub靶场-matrix-breakout-2-morpheus攻略(截止至获取shell)

扫描出ip为192.168.121.161 访问该ip,发现只是一个静态页面什么也没有 使用dir dirsearch 御剑都只能扫描到/robots.txt /server-status 两个页面,前者提示我们什么也没有,后面两个没有权限访问 扫描端口,存在81端口 访问&#x…

美股开户网:谷歌搜索迎“大动作”:推出AI模式切换选项应对竞争压力

谷歌的AI战略新举措 近日,硅谷权威媒体《The Information》报道了谷歌即将在其搜索引擎中推出一项全新的功能——“切换到AI模式”。这一新功能将为用户提供更加智能、对话式的回答,标志着谷歌对人工智能(AI)领域的进一步布局&am…

如何在window 使用 conda 环境下载大模型

最近开始学习 变形金刚,最大的问题就是 huggingface 无法访问,无论是翻墙还是通过本地镜像网站HF-Mirror,然后再通过git下载都很慢,影响学习进度,后面看了如下文章,Huggingface配置镜像_huggingface镜像-CS…

WebRTC学习二:WebRTC音视频数据采集

系列文章目录 第一篇 基于SRS 的 WebRTC 环境搭建 第二篇 基于SRS 实现RTSP接入与WebRTC播放 第三篇 centos下基于ZLMediaKit 的WebRTC 环境搭建 第四篇 WebRTC 学习一:获取音频和视频设备 第五篇 WebRTC学习二:WebRTC音视频数据采集 文章目录 系列文章…

内部知识库的未来展望:技术融合与用户体验的双重升级

在当今数字化飞速发展的时代,企业内部知识库作为知识管理的关键载体,正站在变革的十字路口,即将迎来技术融合与用户体验双重升级的崭新时代,这一系列变化将深度重塑企业知识管理的格局。 一、技术融合:开启知识管理新…

淘宝详情API接口怎么去使用,调用解析

淘宝开放平台提供了丰富的API接口,帮助开发者快速实现与淘宝的交互。其中,淘宝详情API是用于获取商品详情的重要接口之一。通过调用该接口,开发者可以获取到商品的详细信息,如价格、库存、描述等。本文将详细介绍如何调用淘宝详情…

框架程序设计-简答以及论述

目录 maven的pom作用: Pointcut("execution(*com.example.dome.*.*(……))") 缓存的作用,redis配置过程 Redis配置过程: SpringBoot缓存配置过程: AOP的五种增强注解: 论述题:包结构作用、…

【开源库 | xlsxio】C/C++读写.xlsx文件,xlsxio 在 Linux(Ubuntu18.04)的编译、交叉编译

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 ⏰发布时间⏰: 2024-12-20 …

频繁拿下定点,华玉高性能中间件迈入商业化新阶段

伴随着智能驾驶渗透率的快速增长,中国基础软件市场开始进入黄金窗口期。 近日,华玉通软(下称“华玉”)正式获得某国内头部轨道交通产业集团的智能化中间件平台定点项目。这将是华玉在基础软件领域深耕和商业化发展过程中的又一重…