Python OpenCV 入门 这篇就够了

这篇具有很好参考价值的文章主要介绍了Python OpenCV 入门 这篇就够了。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.初步认识OpenCV

1.1OpenCv概述

1.2OpenCV模块

2.图像处理的基本操作

2.1 imread()方法读取图像

2.2 显示图像

2.2.1 imshow()方法显示图像

2.2.2 waitKey()方法设置按键事件

2.2.3 destroyAllWindows()方法销毁所有窗口

3.3 imwrite保存图像

3.4 获取图像属性

3.4.1 shape属性获取图像的形状

3.4.2 size属性获取图像的大小

3.4.3 dtype属性获取图像的大小


1.初步认识OpenCV

1.1OpenCv概述

OpenCV(Open Source Computer Vision Library)是一个基于开源发行的跨平台计算机视觉库,由英特尔公司研发。OpenCV使用C++语言编写,但也提供了Python、Java和MATLAB等语言的接口,这使其在各种编程语言中都能得到广泛应用。同时,OpenCV支持Windows、Linux、Android和Mac OS等多个操作系统,具有良好的跨平台性能。

OpenCV的主要功能包括图像处理和计算机视觉。图像处理主要关注于对图像的处理操作,如增强、还原、去噪、分割等。而计算机视觉则更侧重于使用计算机来模拟人的视觉,这是计算机视觉领域的最终目标。OpenCV实现了图像处理和计算机视觉方面的很多通用算法,因此已成为计算机视觉领域最有力的研究工具。

1.2OpenCV模块

OpenCV模块是指OpenCV库中的各个功能组件或子库,这些模块提供了丰富的计算机视觉和图像处理功能。以下是一些常见的OpenCV模块及其功能概述:

  1. Core模块:这是OpenCV的基础模块,包含了一些基本的数据结构和函数,如图像矩阵(cv::Mat)、动态数据结构、绘图函数、数学函数等。

  2. Imgproc模块:这个模块包含了大多数图像处理功能,如滤波、色彩空间转换、直方图、特征检测、图像变换等。

  3. Video模块:这个模块包含了一些视频分析功能,如光流法、背景/前景分割、摄像头标定、视频稳定等。

  4. Features2d模块:这个模块主要用于特征检测和描述,如SIFT、SURF、ORB等算法,以及特征匹配和几何变换等。

  5. HighGui模块:这个模块提供了用户界面功能,如窗口显示、鼠标事件处理、图像保存和加载等。

  6. VideoIO模块:这个模块负责视频的读取和写入,支持多种视频文件格式。

  7. Calib3d模块:这个模块主要用于相机标定、三维重建和立体视觉等功能。

  8. Objdetect模块:这个模块包含了一些目标检测算法,如人脸检测、行人检测、文本检测等。

2.安装OpenCY

pip install opencv-contrib-python -i https://pypi.tuna.tsinghua.edu.cn/simple/

3.图像处理的基本操作

3.1 imread()方法读取图像

image = cv2.imread(filename, flags)

filename:要读取的图像文件的名称,包括路径和扩展名。

flags:这是一个可选参数,用于指定读取图像的方式。常用的标志有:

  1. cv2.IMREAD_COLOR:以彩色图像模式读取图片(默认值,等价于 flags=1)。
  2. cv2.IMREAD_GRAYSCALE:以灰度模式读取图片(等价于flags=0)。
  3. cv2.IMREAD_UNCHANGED:包括 alpha 通道(等价于 flags=-1)。

3.2 显示图像

3.2.1 imshow()方法显示图像

cv2.imshow(winname, mat)

winname 是窗口名称,mat 是要显示的图像。这个函数没有返回值,但它会在指定的窗口中显示图像。 

3.2.2 waitKey()方法设置按键事件

主要作用是等待用户按下某个键,并返回该按键的 ASCII 码值。这个函数在图像处理的过程中经常被用来实现按键控制,例如通过按下特定的键(如 Esc 键)来退出程序

3.2.3 destroyAllWindows()方法销毁所有窗口

示例:

import cv2  
  
# 读取图像  
image = cv2.imread('path_to_image.jpg')  
  
# 显示图像  
cv2.imshow('Image', image)  
  
# 等待用户按键  
cv2.waitKey(0)  
  
# 关闭所有窗口  
cv2.destroyAllWindows()

3.3 imwrite保存图像

cv2.imwrite(filename, img, [params])
  1. filename:要写入的文件的名称,包括路径和文件扩展名。
  2. img:要保存的图像,通常是一个NumPy数组。
  3. params:一个可选参数,用于指定图像编码的参数。在大多数情况下,可以省略这个参数。
  4. imwrite函数返回一个布尔值,如果图像成功写入文件,则返回True;如果写入失败,则返回False

示例:

import cv2  
  
# 读取图像  
image = cv2.imread('input.jpg')  
  
# 对图像进行一些处理...  
# 例如,我们可以将图像转换为灰度  
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)  
  
# 将处理后的图像写入新的文件  
cv2.imwrite('output.jpg', gray_image)

首先使用cv2.imread函数读取一个名为input.jpg的图像文件。然后,我们使用cv2.cvtColor函数将图像转换为灰度图像。最后,我们使用cv2.imwrite函数将处理后的灰度图像写入到名为output.jpg的新文件中。 

3.4 获取图像属性

3.4.1 shape属性获取图像的形状

示例:

import cv2  
  
# 读取彩色图像  
color_image = cv2.imread('color_image.jpg')  
print("彩色图像的形状:", color_image.shape)  # 输出: (高度, 宽度, 通道数)  
  
# 读取灰度图像  
gray_image = cv2.imread('gray_image.jpg', cv2.IMREAD_GRAYSCALE)  
print("灰度图像的形状:", gray_image.shape)  # 输出: (高度, 宽度)

3.4.2 size属性获取图像的大小

示例:

print("彩色图像的大小:", color_image.size)  # 输出: 高度 * 宽度 * 通道数  
print("灰度图像的大小:", gray_image.size)  # 输出: 高度 * 宽度

3.4.3 dtype属性获取图像的大小

示例:文章来源地址https://www.toymoban.com/news/detail-835170.html

print("彩色图像的数据类型:", color_image.dtype)  # 输出: uint8  
print("灰度图像的数据类型:", gray_image.dtype)  # 输出: uint8

到了这里,关于Python OpenCV 入门 这篇就够了的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python入门,一篇就够了

    函数必须写注释:文档注释格式 \\\'\\\'\\\'注释内容\\\'\\\'\\\' 参数中的等号两边不要用空格 相邻函数用两个空行隔开 小写 + 下划线 函数名 模块名 实例名 驼峰法 类名 结构化类型,有一系列的属性和类型 标量类型,此对象无可访问的内部对象 python 中,整型相除默认是浮点型 建议:使用

    2024年02月15日
    浏览(30)
  • 如何自学网络安全?零基础入门看这篇就够了(含路线图)

    根据腾讯安全发布的《互联网安全报告》,目前中国网络安全人才供应严重匮乏,每年高校安全专业培养人才仅有3万余人,而网络安全岗位缺口已达70万,缺口高达95%。而且,我们到招聘网站上,搜索【网络安全】【Web安全工程师】【渗透测试】等职位名称,可以看到安全岗

    2024年02月09日
    浏览(52)
  • 【兔子王赠书第10期】零基础入门Python,看这篇就够啦!

    粉丝福利第10期来啦,本期博主给大家推荐一本非常适合零基础入门Python的图书:《Python超能学习手册》,祝大家读完本书后都可以成为自己的盖世英雄哦~ 《Python超能学习手册》 官网链接:https://item.jd.com/13410981.html 请以最低沉的嗓音,气音实际上也可以,缓缓地念出下面这

    2024年02月05日
    浏览(35)
  • Linux,看这篇就够了

    因为我们要部署服务,Linux系统一直以其稳定性而闻名,它们可以连续运行多年而不发生任何重大问题。事实上,很多Linux用户都从未在自己的环境中遇到过系统崩溃的情况。相对windows而言,挂起和崩溃完全是一种常态。 Windows由于是商业产品,源代码封闭,我们无法知道微软

    2024年02月08日
    浏览(31)
  • Python入门到高手进阶|这一篇就够了(3万字|超详细)

    🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,计算机系列(火速更新中) 💭 格言:种一棵树最好的时间是十年前,其次是现在 🏡动动小手,点个关注不迷路,感

    2024年02月01日
    浏览(34)
  • 面向对象编程,看这篇就够了

    面向对象编程,是一种程序设计范式,也是一种编程语言的分类。它以对象作为程序的基本单元,将算法和数据封装其中,程序可以访问和修改对象关联的数据。这就像我们在真实世界中操作各种物体一样,比如我们可以打开电视、调整音量、切换频道,而不需要知道电视的

    2024年02月05日
    浏览(64)
  • 测试基本理论-看这篇就够了

    软件测试(Software Testing): 在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。 【系统软件】:如操作系统、数据库管理系统,各种驱动软件等; 【应用软件】:如Office、有道翻译、QQ等; 【单机版本】:如Office,

    2024年02月06日
    浏览(39)
  • 关于SpringBoot框架,看这篇就够了。

    目录 是什么 有什么优点、解决了哪些问题 创建第一个以springboot项目 starter 核心配置文件application.yml或properties application中的配置项 springboot的启动流程 自定义banner 整合日志打印 整合druid数据源 处理异常 常用的注解 Configuration Import conditional ConfigruationProperties 基于springboot的

    2024年02月06日
    浏览(38)
  • Python入门教程(非常详细)从零基础入门到精通,看完这一篇就够了

    本文罗列了了python零基础入门到精通的详细教程,内容均以知识目录的形式展开。 Typora软件下载 Typora基本使用 Typora补充说明 编程与编程语言 计算机的本质 计算机五大组成部分 计算机三大核心硬件 操作系统 文件的概念 计算机内部数据原理 编程语言发展史 编程语言的分类

    2023年04月19日
    浏览(49)
  • IIC通信协议,搞懂这篇就够了

    注:公众号后台发送 “ IIC ” 即可获取基于STM32上实现软件模拟IIC的完整代码。 I2C( IIC )属于两线式串行总线,由飞利浦公司开发用于微控制器(MCU)和外围设备(从设备)进行通信的一种总线,属于 一主多从(一个主设备(Master),多个从设备(Slave))的总线结构 , 总线上的每个设备

    2024年02月06日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包