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日

相关文章

  • 10个顶级Python实用库推荐

    10个顶级Python实用库推荐 Python作为一门广泛应用的编程语言,有着丰富而庞大的生态系统,涵盖了许多领域和应用。在这里,我们为您推荐10个优秀的Python实用库,供您学习和使用。 1. NumPy NumPy是一款基于Python的科学计算库,广泛用于数组处理、矩阵计算等领域。NumPy提供了丰富的数学函数、线性代数运算、傅里叶变换等等功能,它是…

    python 2023年5月19日
    00
  • python 自动化办公之批量修改文件名实操

    我会详细讲解“Python 自动化办公之批量修改文件名实操”的攻略。 概述 本文主要介绍如何使用 Python 实现批量修改文件名的功能,以提升办公效率和减少人为操作带来的错误。方法主要利用了 Python 中的 os、shutil 和 re 等库,对于大量的文件,可以一次性实现重命名。 具体步骤 1. 搜寻目标文件夹下的所有文件 首先需要以 Python …

    python 2023年6月5日
    00
  • python中的print()输出

    下面我来为你详细讲解一下 Python 中的 print() 输出。 1. print() 函数的语法 在 Python 中,print() 函数用于将文本、变量等数据内容输出到控制台或文件中。其语法如下: print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False) *objects:表示…

    python 2023年6月5日
    00
  • Python 一行代码能实现丧心病狂的功能

    让我来为你详细讲解“Python一行代码能实现丧心病狂的功能”的完整攻略。 1. Markdown 文本转 HTML 以下是一行 Python 代码,可以将 Markdown 文本转换为 HTML: import markdown;print(markdown.markdown("## Hello, World!")) 这行代码使用了 m…

    python 2023年6月6日
    00
  • 玩转python爬虫之URLError异常处理

    玩转python爬虫之URLError异常处理 当使用Python开发爬虫时,存在很多网络异常需要处理。其中一个常见的异常是URLError,它会在URL无法访问时抛出。本文将介绍如何使用Python处理URLError异常,以及如何优化代码以避免出现该异常。 URLError异常 在Python中,urllib.request模块用于打开网络URL。如果U…

    python 2023年5月13日
    00
  • 在scrapy中使用phantomJS实现异步爬取的方法

    在Scrapy中使用PhantomJS实现异步爬取的方法 PhantomJS是一个基于WebKit的无界面浏览器,它可以模拟浏览器的行为,支持JavaScript、CSS、DOM等Web标准。在Scrapy中使用PhantomJS可以实现异步爬取,提高爬取效率。 以下是一个完整攻略包括两个示例。 步骤1:安装PhantomJS 首先,需要安装PhantomJ…

    python 2023年5月15日
    00
  • 六个Python3中使用最广泛的内置函数总结

    六个 Python3 中使用最广泛的内置函数总结 1. print() print() 是 Python3 中最常用的内置函数之一,它用于输出内容。可以输出字符串,数字等各种变量。 示例 print("Hello, world!") print(123) name = "Tom" print("My name…

    python 2023年6月5日
    00
  • Python中pywifi模块的基本用法讲解

    下面就详细讲解一下“Python中pywifi模块的基本用法讲解”的完整攻略。 什么是pywifi模块 pywifi是一个可以用于Python通过WiFi控制的模块。它提供了一些功能来控制WiFi,比如扫描可用的无线网络、连接一个WiFi、断开一个WiFi连接、获取连接状态等等。 安装pywifi模块 在使用pywifi之前,需要先安装pywifi模块。可以…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部