Python+OpenCV实现图像基本操作的示例详解

Python+OpenCV实现图像基本操作的示例详解

本篇文章将介绍如何使用Python和OpenCV库进行图像基本操作,内容包括图像的读取和显示、裁剪和拼接、灰度化和二值化、图像的旋转和翻转等。

图像的读取和显示

下面是读取并显示一幅图像的代码示例:

import cv2

# 图像读取
img = cv2.imread('image.jpg')

# 图像显示
cv2.imshow('image', img)
cv2.waitKey(0)

该代码首先使用cv2.imread()函数对一幅图像进行读取,读取的图像文件名为'image.jpg',读取出来的结果保存在变量img中。然后使用cv2.imshow()函数将图像显示出来,第一个参数为窗口的名称,第二个参数为要显示的图像。

需要注意的是,这样的显示窗口有时可能会一闪而过,如果要保持窗口不会自动消失,则需要在最后使用cv2.waitKey(0)函数,该函数会等待用户按下任意键后才会关闭窗口。

图像的裁剪和拼接

下面是对一幅图像进行裁剪和拼接的示例:

import cv2

# 图像读取
img = cv2.imread('image.jpg')

# 图像裁剪
roi = img[50:150, 100:200]

# 图像拼接
img[:, 0:100] = roi

# 图像显示
cv2.imshow('image', img)
cv2.waitKey(0)

该代码首先使用cv2.imread()函数读取一个图像,并将其保存在变量img中。然后对该图像进行裁剪,得到变量roi,该变量保存的是图片中的一个区域。接下来,将裁剪出来的区域拼接回原始图像的左侧,得到一个新的图像。最后使用cv2.imshow()函数将该图像显示出来。

灰度化和二值化

下面是将一幅彩色图像转换为灰度图像,并进行二值化的示例:

import cv2

# 图像读取
img = cv2.imread('image.jpg')

# 灰度化
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 二值化
ret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)

# 图像显示
cv2.imshow('image', binary)
cv2.waitKey(0)

该代码首先使用cv2.cvtColor()函数将一幅彩色图像转换成灰度图像,得到变量gray。然后使用cv2.threshold()函数对灰度图像进行二值化操作,将灰度值大于127的像素设置为255,小于等于127的像素设置为0,得到变量binary。最后使用cv2.imshow()函数将二值化后的图像显示出来。

图像的旋转和翻转

下面是对一幅图像进行90度顺时针旋转和水平翻转的示例:

import cv2

# 图像读取
img = cv2.imread('image.jpg')

# 旋转
rows, cols = img.shape[:2]
M = cv2.getRotationMatrix2D((cols/2, rows/2), 90, 1)
rot = cv2.warpAffine(img, M, (cols, rows))

# 翻转
flip = cv2.flip(img, 1)

# 图像显示
cv2.imshow('image', flip)
cv2.waitKey(0)

该代码首先使用cv2.getRotationMatrix2D()函数得到一幅图像的90度顺时针旋转矩阵M,然后使用cv2.warpAffine()函数对图像进行旋转,得到变量rot。接下来使用cv2.flip()函数对图像进行水平翻转,得到变量flip。最后使用cv2.imshow()函数将翻转后的图像显示出来。

以上便是Python+OpenCV实现图像基本操作的示例详解。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python+OpenCV实现图像基本操作的示例详解 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • 对Python中 \r, \n, \r\n的彻底理解

    下面是对Python中\r、\n和\r\n的详细解释。 背景 在计算机中,换行分两种:回车(Carriage Return)和换行(Line Feed)。在以前的打字机时代,回车的操作是由一个机械装置来完成的,它会把打印头快速地移回行首,这个操作会造成打印纸移动一行的效果。而换行则是让打印头下移一行。 在计算机中,我们通常使用的是ASCII码作为字符编码,其…

    python 2023年5月31日
    00
  • python如何修改图像的分辨率

    当我们处理图像时,有时候需要改变图像的分辨率,也就是改变图像的大小。Python中的Pillow库为我们提供了方便的处理图像的方法,下面我们来详细讲解如何使用Python来修改图像的分辨率。 1. 安装Pillow 为了使用Pillow库,我们首先需要安装这个库。可以使用pip命令来安装,运行下面的命令: pip install Pillow 2. 打开图片…

    python 2023年5月18日
    00
  • Python使用JSON库解析JSON数据的方法

    在Python中,可以使用JSON库解析JSON数据。以下是Python使用JSON库解析JSON数据的详细攻略: 解析JSON字符串 要解析JSON字符串,可以使用json.loads()方法。以下是解析JSON字符串的示例: import json json_str = ‘{"name": "John", &quo…

    python 2023年5月14日
    00
  • Python中Selenium上传文件的几种方式

    在Python中使用Selenium上传文件是Web自动化测试中的常见需求。本文将详细讲解Python中Selenium上传文件的几种方式,包括使用send_keys方法、使用AutoIT工具、使用pywinauto库等。 使用send_keys方法 使用send_keys方法是最简单的上传文件方式,可以直接将文件路径作为参数传递给send_keys方法。以…

    python 2023年5月15日
    00
  • Python使用爬虫爬取贵阳房价的方法详解

    本攻略将提供一个Python使用爬虫爬取贵阳房价的方法详解,包括爬虫的概念、爬虫的基本流程、爬取贵阳房价的方法。攻略将包含两个示例,分别演示如何使用Python爬取贵阳房价。 爬虫的概念 爬虫是一种自动化程序,用于从互联网上获取数据。爬虫程序通常会模拟浏览器行为,访问网站并抓取网页内容。爬虫程序可以用于各种用途,例如搜索引擎、数据挖掘、信息收集等。 爬虫的基…

    python 2023年5月15日
    00
  • Python中元组的概念及应用小结

    Python中元组的概念及应用小结 什么是元组 元组(tuple)是一种有序的不可变序列类型,它可以用来存储一组数据,一旦创建就无法修改。元组使用小括号 () 来表示,可以包含任意类型的数据,包括数字、字符串、列表、字典、甚至是另一个元组。 创建元组 创建元组非常简单,只需使用一对小括号 () ,将多个数据用逗号 , 隔开即可,如下所示: # 创建一个包含多…

    python 2023年5月14日
    00
  • Django实现随机图形验证码的示例

    下面是Django实现随机图形验证码的完整攻略: 1. 安装依赖包 实现随机图形验证码需要使用到Python的pillow库,因此需要先安装依赖包: pip install pillow 2. 创建验证码视图函数 在Django项目的一个应用中创建一个验证码视图函数,如下所示: from io import BytesIO from random impor…

    python 2023年6月3日
    00
  • 如何在 Android 手机上设置 android-scripting + python?

    【问题标题】:how to setup android-scripting + python on Android phones?如何在 Android 手机上设置 android-scripting + python? 【发布时间】:2023-04-06 18:01:01 【问题描述】: 我已经下载了最新可用版本的 python 解释器here。现在,我如…

    Python开发 2023年4月7日
    00
合作推广
合作推广
分享本页
返回顶部