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")
相关文章
|
28天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
29天前
|
IDE 程序员 开发工具
Python编程入门:打造你的第一个程序
迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!
|
28天前
|
测试技术 开发者 Python
探索Python中的装饰器:从入门到实践
装饰器,在Python中是一块强大的语法糖,它允许我们在不修改原函数代码的情况下增加额外的功能。本文将通过简单易懂的语言和实例,带你一步步了解装饰器的基本概念、使用方法以及如何自定义装饰器。我们还将探讨装饰器在实战中的应用,让你能够在实际编程中灵活运用这一技术。
38 7
|
30天前
|
开发者 Python
Python中的装饰器:从入门到实践
本文将深入探讨Python的装饰器,这一强大工具允许开发者在不修改现有函数代码的情况下增加额外的功能。我们将通过实例学习如何创建和应用装饰器,并探索它们背后的原理和高级用法。
42 5
|
29天前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
70 3
|
1月前
|
Python
Python编程入门:从零开始的代码旅程
本文是一篇针对Python编程初学者的入门指南,将介绍Python的基本语法、数据类型、控制结构以及函数等概念。文章旨在帮助读者快速掌握Python编程的基础知识,并能够编写简单的Python程序。通过本文的学习,读者将能够理解Python代码的基本结构和逻辑,为进一步深入学习打下坚实的基础。
|
8月前
|
人工智能 Java Python
python入门(二)安装第三方包
python入门(二)安装第三方包
108 1
|
3月前
|
机器学习/深度学习 Python
【10月更文挑战第5天】「Mac上学Python 6」入门篇6 - 安装与使用Anaconda
本篇将详细介绍如何在Mac系统上安装和配置Anaconda,如何创建虚拟环境,并学习如何使用 `pip` 和 `conda` 管理Python包,直到成功运行第一个Python程序。通过本篇,您将学会如何高效地使用Anaconda创建和管理虚拟环境,并使用Python开发。
88 4
【10月更文挑战第5天】「Mac上学Python 6」入门篇6 - 安装与使用Anaconda
|
3月前
|
IDE 开发工具 iOS开发
【10月更文挑战第3天】「Mac上学Python 3」入门篇3 - 安装Python与开发环境配置
本篇将详细介绍如何在Mac系统上安装Python,并配置Python开发环境。内容涵盖Python的安装、pip包管理工具的配置与国内镜像源替换、安装与配置PyCharm开发工具,以及通过PyCharm编写并运行第一个Python程序。通过本篇的学习,用户将完成Python开发环境的搭建,为后续的Python编程工作打下基础。
277 2
【10月更文挑战第3天】「Mac上学Python 3」入门篇3 - 安装Python与开发环境配置