skimage库:Python图像处理入门

在本篇学习笔记中,我们将探索图像处理的基本概念和技术。从最初的图像读取、尺寸获取,到颜色通道分离,再到更高级的图像灰度化、二值化、边缘检测和高斯滤波,每一步都配有直观的代码示例和结果展示。通过操作真实的图像数据—这里以一张猫和一张狗的图像为例—我们不仅会学习如何使用Python和skimage库进行图像处理,还将了解到各种技术如何帮助我们提取图像信息、减少噪声并突出重要特征。

原始图像:

首先导入需要的库,然后用io.imread读取图片,获取基本信息 (高度,宽度,颜色通道)。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from skimage import io
from skimage.color import rgb2gray
from skimage.filters import threshold_otsu
from skimage.filters import sobel
from skimage.filters import gaussian

cat = io.imread('cat_image.png')
dog = io.imread('dog_image.png')
df = pd.DataFrame(['Cat','Dog'], columns=['Image'])

print(cat.shape, dog.shape)
#(高度,宽度,颜色通道):(234, 313, 3) (234, 406, 3)#
# 组合图片
fig = plt.figure(figsize=(8,4))     # 创建一个图形实例,并设置图形的尺寸(宽度8英寸,高度4英寸)
ax1 = fig.add_subplot(1,2,1)        # 参数(1,2,1)表示创建一个1行2列的子图网格,并将此子图放在第1个位置,下面同理
ax1.imshow(cat)
ax2 = fig.add_subplot(1,2,2)
ax2.imshow(dog)                     # 图片:猫和狗

 

 

# 分离图片的颜色通道
dog_r = dog.copy()
dog_r[:,:,1] = dog_r[:,:,2] = 0  # 只保留红色通道

dog_g = dog.copy()
dog_g[:,:,0] = dog_g[:,:,2] = 0  # 只保留绿色通道

dog_b = dog.copy()
dog_b[:,:,0] = dog_b[:,:,1] = 0  # 只保留蓝色通道
plot_image = np.concatenate((dog_r, dog_g, dog_b), axis=1)
plt.figure(figsize = (10,5))
plt.imshow(plot_image)           # 图片:三色狗

# 图像灰度化
dog_gray = rgb2gray(dog)
plt.figure(figsize=(10,7))
plt.imshow(dog_gray, cmap='gray')  # 显示灰度图像

# 图像二值化
thresh = threshold_otsu(dog_gray)
dog_binary = dog_gray > thresh
plt.figure(figsize=(10,7))
plt.imshow(dog_binary, cmap='gray')  # 显示二值化图像

# 边缘检测
dog_edges = sobel(dog_gray)
plt.figure(figsize=(10,7))
plt.imshow(dog_edges, cmap='gray')  # 显示边缘检测结果

# 图像滤波
dog_smooth = gaussian(dog_gray, sigma=3) # 高斯核的标准差,控制滤波的程度。sigma值越大,图像的平滑效果越明显,但同时也可能导致图像细节的丢失
plt.figure(figsize=(10,7))
plt.imshow(dog_smooth, cmap='gray')  # 显示滤波后的图像

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值