opencv入门(python)

简介: opencv入门(python)

安装

https://pypi.org/project/opencv-python/上面下载最新的基于Python的OpenCV库

完成下载后,在Anaconda Prompt内使用pip install完整路径文件名完成安装。

pip install D:\anaconda\Lib\opencv_python-3.4.3.18-cp37-cp37m-win_amd64.whl

基本使用

读取图像

img = cv2.imread( filename[, flags] )

img是返回值,其值是读取到的图像。

如果未读取到图像,则返回“None”。

  • filename表示要读取的图像的完整文件名。
  • flags是读取标记。该标记用来控制读取文件的类型

函数cv2.imread()能够读取多种不同类型的图像

显示图像

  1. namedWindow函数
    用来创建指定名称的窗口,其语法格式为:
None = cv2.namedWindow( winname )
  1. imshow函数函数cv2.imshow()用来显示图像,其语法格式为:
None = cv2.imshow( winname, mat)
  • winname是窗口名称。
  • mat是要显示的图像。

也可以不创建窗口,直接使用函数cv2.imshow()引用一个并不存在的窗口,并在其中显示指定图像,这样函数cv2.imshow()实际上会完成如下两步操作。

第1步:函数cv2.imshow()创建一个指定名称的新窗口。

第2步:函数cv2.imshow()将图像显示在刚创建的窗口内。

cv2.imshow("不存在的窗口名", 要显示的图像)
import cv2 
lena=cv2.imread("lena.bmp") 
cv2.imshow("demo", lena )
  1. waitKey函数函数cv2.waitKey()用来等待按键,当用户按下键盘后,该语句会被执行,并获取返回值。
retval = cv2.waitKey( [delay] )
  • retval表示返回值。如果没有按键被按下,则返回-1;如果有按键被按下,则返回该按键的ASCII码。
  • delay表示等待键盘触发的时间,单位是ms。当该值是负数或者零时,表示无限等待。该值默认为0。

Python提供了函数ord(),用来获取字符的ASCII码值。

  1. destroyWindow函数
    函数cv2.destroyWindow()用来释放(销毁)指定窗口,其语法格式为:
None = cv2.destroyWindow( winname )
  1. 在实际使用中,该函数通常与函数cv2.waitKey()组合实现窗口的释放。
  2. destroyAllWindows函数
    函数cv2.destroyAllWindows()用来释放(销毁)所有窗口,其语法格式为:
None = cv2.destroyAllWindows( )

保存图像

OpenCV提供了函数cv2.imwrite(),用来保存图像,该函数的语法格式为:

retval = cv2.imwrite( filename, img[, params] )
  • retval是返回值。如果保存成功,则返回逻辑值真(True);如果保存不成功,则返回逻辑值假(False)。
  • filename是要保存的目标文件的完整路径名,包含文件扩展名。
  • img是被保存的图像。
  • params是保存类型参数,是可选的。

OpenCV贡献库

OpenCV贡献库:该扩展库的名称为opencv_contrib

OpenCV贡献库中包含了非常多的扩展模块:

  • bioinspired:生物视觉模块。
  • datasets:数据集读取模块。
  • dnn:深度神经网络模块。
  • face:人脸识别模块。
  • matlab:MATLAB接口模块。
  • stereo:双目立体匹配模块。
  • text:视觉文本匹配模块。
  • tracking:基于视觉的目标跟踪模块。
  • ximgpro:图像处理扩展模块。
  • xobjdetect:增强2D目标检测模块。
  • xphoto:计算摄影扩展模块。

可以通过以下两种方式使用贡献库:

  • 下载OpenCV贡献库,使用cmake手动编译。
  • 通过语句pip install opencv-contrib-python直接安装编译好的OpenCV贡献库。

网页https://pypi.org/project/opencv-contrib-python/上提供了该方案的常见问题列表FAQ

例子

import cv2
filename = r"C:\Users\space.png"
img=cv2.imread(filename)
cv2.namedWindow("test")
cv2.imshow("test",img)
cv2.imwrite("space_copy.png",img)
cv2.waitKey()
cv2.destroyWindow("test")
相关文章
|
3月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
420 7
|
4月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
397 1
|
3月前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
Python API接口实战指南:从入门到精通
|
3月前
|
存储 Java 调度
Python定时任务实战:APScheduler从入门到精通
APScheduler是Python强大的定时任务框架,通过触发器、执行器、任务存储和调度器四大组件,灵活实现各类周期性任务。支持内存、数据库、Redis等持久化存储,适用于Web集成、数据抓取、邮件发送等场景,解决传统sleep循环的诸多缺陷,助力构建稳定可靠的自动化系统。(238字)
619 1
|
4月前
|
调度 数据库 Python
Python异步编程入门:asyncio让并发变得更简单
Python异步编程入门:asyncio让并发变得更简单
249 5
|
4月前
|
数据采集 存储 XML
Python爬虫入门(1)
在互联网时代,数据成为宝贵资源,Python凭借简洁语法和丰富库支持,成为编写网络爬虫的首选。本文介绍Python爬虫基础,涵盖请求发送、内容解析、数据存储等核心环节,并提供环境配置及实战示例,助你快速入门并掌握数据抓取技巧。
|
4月前
|
大数据 数据处理 数据安全/隐私保护
Python3 迭代器与生成器详解:从入门到实践
简介:本文深入解析Python中处理数据序列的利器——迭代器与生成器。通过通俗语言与实战案例,讲解其核心原理、自定义实现及大数据处理中的高效应用。
196 0
|
人工智能 Java Python
python入门(二)安装第三方包
python入门(二)安装第三方包
193 1
|
Java Python 开发者
Python 学习之路 01基础入门---【Python安装,Python程序基本组成】
线程池详解与异步任务编排使用案例-xian-cheng-chi-xiang-jie-yu-yi-bu-ren-wu-bian-pai-shi-yong-an-li
586 3
Python 学习之路 01基础入门---【Python安装,Python程序基本组成】
|
机器学习/深度学习 Python
【10月更文挑战第5天】「Mac上学Python 6」入门篇6 - 安装与使用Anaconda
本篇将详细介绍如何在Mac系统上安装和配置Anaconda,如何创建虚拟环境,并学习如何使用 `pip` 和 `conda` 管理Python包,直到成功运行第一个Python程序。通过本篇,您将学会如何高效地使用Anaconda创建和管理虚拟环境,并使用Python开发。
455 4
【10月更文挑战第5天】「Mac上学Python 6」入门篇6 - 安装与使用Anaconda

推荐镜像

更多