OpenCV-Python 对图像的基本操作代码

yizhihongxing

关于 OpenCV-Python 对图像的基本操作,我们通常会用到以下几个工具:

  • 读取图像
  • 显示图像
  • 保存图像
  • 转换图像颜色空间
  • 裁剪图像
  • 调整图像大小
  • 增强对比度和亮度
  • 图像平移与旋转
  • 应用图像内核和滤波器
  • 绘制图形和文字

下面我们一一进行讲解:

读取图像

OpenCV-Python 可以读取许多图像格式,包括 JPG、PNG、BMP 和 GIF,通过 cv2.imread() 函数读取:

import cv2

image = cv2.imread("image.jpg")   # 读取图片,注意图片和脚本要在同一文件夹下

显示图像

读取图像之后,我们就可以通过 cv2.imshow() 函数将其显示出来:

import cv2

image = cv2.imread("image.jpg")
cv2.imshow("Image", image)
cv2.waitKey(0)    # 等待用户键盘输入

保存图像

如果我们需要将已经处理好的图像进行保存,可以用 cv2.imwrite() 函数:

import cv2

image = cv2.imread("image.jpg")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imwrite("gray_image.jpg", gray)

转换图像颜色空间

OpenCV-Python 可以将图像从一种颜色空间转换到另一种,例如将彩色图像转换为灰度图像:

import cv2

image = cv2.imread("image.jpg")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imshow("Gray Image", gray)
cv2.waitKey(0)

裁剪图像

通过 OpenCV-Python,我们可以对图像进行剪裁操作,只需指定感兴趣区域:

import cv2

image = cv2.imread("image.jpg")
cropped = image[100:500, 200:700]   # 裁剪出感兴趣区域
cv2.imshow("Cropped Image", cropped)
cv2.waitKey(0)

调整图像大小

通过 OpenCV-Python,我们也可以对图像进行尺寸调整:

import cv2

image = cv2.imread("image.jpg")
resized = cv2.resize(image, (800, 600))   # 调整图像大小为 800x600
cv2.imshow("Resized Image", resized)
cv2.waitKey(0)

增强对比度和亮度

OpenCV-Python 可以增强图像的对比度和亮度:

import cv2
import numpy as np

image = cv2.imread("image.jpg")
alpha = 1.5   # 控制对比度
beta = 25    # 控制亮度
new_image = np.clip(alpha * image + beta, 0, 255).astype(np.uint8)   # 增强对比度和亮度
cv2.imshow("New Image", new_image)
cv2.waitKey(0)

图像平移与旋转

OpenCV-Python 可以对图像进行平移和旋转:

import cv2

image = cv2.imread("image.jpg")
(rows, cols) = image.shape[:2]

# 平移图像
M = np.float32([[1, 0, 100], [0, 1, 50]])   # 定义平移矩阵
trans_image = cv2.warpAffine(image, M, (cols, rows))   # 平移图像
cv2.imshow("Translated Image", trans_image)

# 旋转图像
M = cv2.getRotationMatrix2D((cols/2, rows/2), 45, 1)   # 定义旋转矩阵
rotated_image = cv2.warpAffine(image, M, (cols, rows))   # 旋转图像
cv2.imshow("Rotated Image", rotated_image)

cv2.waitKey(0)

应用图像内核和滤波器

OpenCV-Python 可以应用各种内核和滤波器来使图像更清晰、更明亮、更高清:

import cv2
import numpy as np

image = cv2.imread("image.jpg")

# 应用平滑滤波器
kernel = np.ones((5, 5), np.float32) / 25   # 定义平滑内核
smoothed = cv2.filter2D(image, -1, kernel)   # 应用滤波器
cv2.imshow("Smoothed Image", smoothed)

# 应用边缘检测器
edges = cv2.Canny(image, 100, 200)   # 检测图像边缘
cv2.imshow("Edges", edges)

cv2.waitKey(0)

绘制图形和文字

OpenCV-Python 可以用于在图像上绘制线条、矩形和文字等:

import cv2

image = cv2.imread("image.jpg")
cv2.line(image, (0, 0), (400, 400), (0, 0, 255), 5)   # 绘制线条
cv2.rectangle(image, (50, 50), (200, 200), (255, 0, 0), 3)   # 绘制矩形
font = cv2.FONT_HERSHEY_SIMPLEX   # 定义字体
cv2.putText(image, "OpenCV-Python", (400, 50), font, 1, (0, 255, 0), 2)   # 绘制文字
cv2.imshow("Image", image)
cv2.waitKey(0)

以上就是 OpenCV-Python 对图像的基本操作代码的攻略了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:OpenCV-Python 对图像的基本操作代码 - Python技术站

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

相关文章

  • python爬虫爬取淘宝商品信息(selenum+phontomjs)

    Python爬虫爬取淘宝商品信息攻略 为了爬取淘宝上的商品信息,我们可以使用Python编写爬虫。本攻略将讲解如何使用Selenium和PhantomJS来模拟人类在浏览器中的行为,从而爬取淘宝的商品信息。 安装Selenium和PhantomJS Selenium是一个自动化测试框架,可以用来驱动各种浏览器来模拟用户的行为。PhantomJS是一个基于We…

    python 2023年5月14日
    00
  • 利用Java编写一个出敬业福的小程序

    让我来详细讲解如何利用Java编写一个出敬业福的小程序。步骤如下: 1. 了解敬业福 在开始编写程序之前,我们需要首先了解一下敬业福是什么。敬业福是管理人员在警示员工要求敬业之余,同时也对员工的忠诚、勤奋等表彰与回报的一种制度。一般敬业福是以较高的奖金或优厚的待遇作为表彰。 2. 设计程序功能 接下来我们需要确定程序的功能。在这个小程序中,我们需要实现如下功…

    python 2023年6月13日
    00
  • 修复python-memcached在python3.8环境中报SyntaxWarning的问题

    修复python-memcached在Python3.8环境中报SyntaxWarning的问题 在Python3.8环境中,使用python-memcached库可能会出现以下警告: SyntaxWarning: "is" with literal. Did you mean "=="? 这是因为Python38中对…

    python 2023年5月13日
    00
  • Python计算开方、立方、圆周率,精确到小数点后任意位的方法

    Python计算开方、立方、圆周率,精确到小数点后任意位的方法 在Python中,计算开方、立方、圆周率以及精确到小数点后任意位的方法多种,下面将分别进行介绍。 1. 计算开方 Python中计算开方可以使用math库中的sqrt函数,也使用幂运算符(**)。 使用math库 import math x = 16 y = math.sqrt(x) print…

    python 2023年5月14日
    00
  • Python 开发工具PyCharm安装教程图文详解(新手必看)

    Python 开发工具PyCharm安装教程图文详解(新手必看) PyCharm是 JetBrains公司开发的Python开发工具,是Python官方推荐的开发工具之一,具有可视化调试,代码自动补全,智能提示等功能。本文将会详细介绍PyCharm的安装步骤,以及使用PyCharm创建项目和运行Python文件的方法。 第一步:下载并安装PyCharm 首先…

    python 2023年5月30日
    00
  • 如何使用Python进行网络安全攻防?

    使用Python进行网络安全攻防一般可以分为以下几个步骤: 1.网络数据收集 在进行网络安全攻防前,我们需要先进行网络数据收集,包括获取目标主机的IP地址、开放端口、操作系统信息及目标主机的漏洞信息等等。Python中可以使用nmap、pymssql等工具库对网络数据进行收集和分析,例如以下的代码片段: # 导入nmap库 import nmap # 创建n…

    python 2023年4月19日
    00
  • 浅谈Python爬取网页的编码处理

    在Python爬虫中,网页的编码处理是一个非常重要的问题。如果不正确地处理编码,可能会导致乱码或无法解析的情况。本攻略将详细讲解Python爬取网页的编码处理,包括如何自动识别编码、如何手动指定编码、以及如何处理乱码。同时,提供两个示例,演示如何处理不同编码的网页。 自动识别编码 在Python爬虫中,我们可以使用requests库自动识别网页的编码。req…

    python 2023年5月15日
    00
  • Python如何对齐字符串

    当我们需要对齐字符串时,Python提供了多种方式来实现。下面我将介绍常用的几种方法。 居中对齐字符串 我们可以使用center()函数来将字符串居中对齐,其语法如下: string.center(width[, fillchar]) 其中,width参数是指定字符串的宽度, fillchar是指定填充字符,该参数可选,默认为空格。 下面是一个简单的示例: …

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