对python PLT中的image和skimage处理图片方法详解

yizhihongxing

python PLT中的image和skimage处理图片方法详解

前言

在Python中,matplotlib.pyplot(简称mpl或plt)和scikit-image(简称skimage)是常用的处理图像和可视化的库。本篇文章将详细讲解matplotlib.pyplot和scikit-image的常用API,以及使用案例。

matplotlib.pyplot处理图片

1、读取和显示图像

读取和显示图像是图像处理中的基础操作,最基本的方法如下:

import matplotlib.pyplot as plt
import numpy as np

# 读取图像
img = plt.imread('test.jpg')

# 显示图像
plt.imshow(img)
plt.show()

这里使用plt.imread读取图像,返回的是一个numpy数组。plt.imshow用来显示图片。

2、调整图像大小

修改图像大小的方法有很多,这里只介绍几种常用方法:

import matplotlib.pyplot as plt

# 读取图像
img = plt.imread('test.jpg')

# 调整大小为原来的2倍
img_resized = plt.resize(img, (img.shape[1] * 2, img.shape[0] * 2))

# 调整大小为256x256像素
img_resize = plt.resize(img, (256, 256))

# 显示调整大小后的图像
plt.imshow(img_resized)
plt.show()

其中,第一种方法可以将图像的宽和高都扩大2倍,第二种方法可以将图像大小修改为256x256像素。需要注意的是,如果对图像尺寸进行缩放,会造成图像失真。因此,在对图像进行缩放操作时,需要根据具体情况权衡。

3、图像裁剪

要裁剪图像,需要指定裁剪的区域。这里提供一种裁剪正方形区域的方法:

import matplotlib.pyplot as plt

# 读取图像
img = plt.imread('test.jpg')

# 裁剪正方形区域
h, w = img.shape[:2]
left, right, top, bottom = w // 4, w // 4 * 3, h // 4, h // 4 * 3
img_crop = img[top:bottom, left:right, :]

# 显示裁剪后的图像
plt.imshow(img_crop)
plt.show()

这里裁剪的区域是原图像的四分之一大小。其中,h和w表示原图像的高和宽。

示例1:生成包含噪声的图片

import matplotlib.pyplot as plt
import numpy as np

# 生成随机噪声
noise = np.random.normal(loc=0, scale=0.1, size=(512, 512))

# 读取图像
img = plt.imread('test.jpg')

# 对图像进行噪声处理
img_noise = np.clip(img + noise, 0, 1)

# 显示噪声处理后的图像
plt.imshow(img_noise)
plt.show()

这里使用np.random.normal生成符合正态分布的随机噪声,并使用np.clip函数将处理后的图像像素值限制在0-1之间。

scikit-image处理图片

1、读取和显示图像

使用scikit-image读取和显示图像的方法如下:

from skimage import io
import matplotlib.pyplot as plt

# 读取图像
img = io.imread('test.jpg')

# 显示图像
plt.imshow(img)
plt.show()

其中,io.imread用来读取图像。与matplotlib.pyplot类似,plt.imshow用来显示图像。

2、调整图像大小

调整图像大小的方法与matplotlib.pyplot类似,这里不再赘述。

3、图像裁剪

使用scikit-image裁剪图像的方法如下:

from skimage import io
import matplotlib.pyplot as plt

# 读取图像
img = io.imread('test.jpg')

# 裁剪图像
img_crop = img[100:300, 200:400]

# 显示裁剪后的图像
plt.imshow(img_crop)
plt.show()

这里裁剪的区域是从第100行到第300行、从第200列到第400列的图像区域。

示例2:使用Otsu算法实现图像二值化

from skimage import io, filters
import matplotlib.pyplot as plt

# 读取图像
img = io.imread('test.jpg', as_gray=True)

# 图像二值化
threshold = filters.threshold_otsu(img)
img_binary = img > threshold

# 显示二值化后的图像
plt.imshow(img_binary, cmap='gray')
plt.show()

这里使用scikit-image的filters.threshold_otsu函数进行自适应阈值处理,将图像二值化。最后使用plt.imshow函数显示二值化后的图像。

总结

本篇文章对matplotlib.pyplot和scikit-image的常用API进行了详细讲解,并提供了示例代码。使用这些API可以实现图像处理和可视化的各种操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:对python PLT中的image和skimage处理图片方法详解 - Python技术站

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

相关文章

  • 玩转Win XP系统内置语音输入软件

    玩转Win XP系统内置语音输入软件攻略 Win XP系统内置了语音输入软件,可以帮助用户实现语音输入文字。下面我们来详细讲解如何玩转Win XP系统内置语音输入软件。 步骤一:打开语音输入软件 依次点击“开始”菜单 -> “所有程序” -> “附件” -> “辅助工具” -> “语音识别引擎”,即可打开语音输入软件。 步骤二:设置语…

    python 2023年6月5日
    00
  • 使用Python自动生成HTML的方法示例

    以下是使用Python自动生成HTML的方法示例的完整攻略: 步骤1:导入模块 在使用Python自动生成HTML之前,需要导入相应的模块。以下是一个示例代码: from html.parser import HTMLParser 在这个例中,我们使用from语句导入了HTMLParser类。 步骤2:创建HTMLParser子类 在使用Python自动生成…

    python 2023年5月14日
    00
  • python读取几个G的csv文件方法

    下面是python读取几个G的csv文件方法的完整攻略: 1. 概述 CSV(逗号分隔值)是一种常见的电子表格文件格式,通常用于存储大量的结构化数据。由于其简单易用和多语言支持,CSV文件在数据科学和机器学习中被广泛使用。 但是,当CSV文件的大小达到几个GB时,很多常见的读取CSV文件的方法难以胜任。为了读取这些大型CSV文件,需要使用一些专门的技术和工具…

    python 2023年6月3日
    00
  • Python中的数字低通巴特沃斯滤波器

    数字低通巴特沃斯滤波器是一种常用的数字滤波器类型,可以用于对数字信号进行滤波处理,从而去除高频成分,实现信号的平滑处理。Python中可以使用scipy库中的signal模块来实现数字低通巴特沃斯滤波器。 下面是Python中使用数字低通巴特沃斯滤波器的完整攻略。 1. 导入库及数据源 首先需要导入scipy库的signal模块,并加载需要滤波的数据源,例如…

    python-answer 2023年3月25日
    00
  • python入门字符串拼接\截取\转数字理解学习

    Python是一种高级的多范式编程语言,也是一种十分流行的语言。Python的字符串拼接、截取和数字转换是日常开发中十分常见又重要的操作,掌握这些基本的字符串和数字处理方法能够极大地提高你的开发效率和代码质量。本文将介绍 Python 的字符串拼接、截取和数字转换相关知识,为初学者提供一份完整攻略。 字符串拼接 在 Python 中,字符串的拼接可以使用 +…

    python 2023年6月5日
    00
  • Python实现登录人人网并抓取新鲜事的方法

    Python实现登录人人网并抓取新鲜事的方法可以分为以下几个步骤: 1.导入requests和BeautifulSoup模块 import requests from bs4 import BeautifulSoup 2.获取登录页面信息,分析登录页面的HTML结构并提取需要post的数据 login_url = ‘http://www.renren.com…

    python 2023年6月3日
    00
  • Python pandas实现excel工作表合并功能详解

    下面我就来详细讲解“Python pandas实现excel工作表合并功能”的完整实例教程。 1.准备工作 在开始本教程前,需要安装以下几个库: pandas xlrd openpyxl 可以在终端或命令行中使用以下命令安装: pip install pandas xlrd openpyxl 2.读取Excel数据 首先需要读取所有要合并的Excel文件中的…

    python 2023年5月13日
    00
  • Python实现i人事自动打卡的示例代码

    接下来我将详细讲解“Python实现i人事自动打卡的示例代码”的完整攻略。 1. 确定打卡接口 首先,要使用Python实现自动打卡功能,需要确定i人事打卡功能的接口。打开i人事系统的网页版,在F12开发者工具中找到“Network”选项卡,并勾选“Preserve log”选项,然后手动打卡一次,即可看到打卡接口的请求。一般情况下,i人事系统的打卡接口为:…

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