scipyでよく使われる画像処理

ガイド

scipy画像処理に関するメソッドも多数あり、主にndimageパッケージにカプセル化されていますが、この記事では主にいくつかの画像処理メソッドの使用方法を紹介します。

画像フィルタリング

  • 写真を取得する
from scipy import misc,ndimage
from matplotlib import pyplot as plt

#从网站上获取一张图片
img = misc.ascent()
#显示灰度图
plt.gray()
#显示图片
plt.imshow(f)
plt.show()

ここに画像の説明を挿入

  • フィルタリングは
    滤波通常、画像のノイズ除去に使用され、多くのフィルタリング アルゴリズムも scipy で提供されています。
#高斯滤波,sigma设置高斯核的标准差
gauss_f_img = ndimage.gaussian_filter(img,sigma=3)
#最大值滤波
max_f_img = ndimage.maximum_filter(img,size=20)
#中值滤波
median_f_img = ndimage.median_filter(img,size=20)
#最小值滤波
min_f_img = ndimage.minimum_filter(img,size=20)
#百分位滤波
percentile_f_img = ndimage.percentile_filter(img,percentile=20,size=20)

#设置显示图片的list
img_list = [img,gauss_f_img,max_f_img,median_f_img,min_f_img,percentile_f_img]
title_list = ["origin","guassian filter","maximum filter","median filter","minimum filter","percentile filter"]
for i in range(len(img_list)):
    plt.subplot(2,3,i+1)
    #设置显示图片的标题
    plt.title(title_list[i])
    #显示图片
    plt.imshow(img_list[i])
    #关闭坐标轴的显示
    plt.axis("off")

plt.show()

ここに画像の説明を挿入

画像補間

画像補間も画像処理で広く使用されています, 透视变换, , ,などが見られます.仿射变换画像補間用の関数もいくつか提供されています. 以下を見てみましょう平移缩放旋转scipy

画像のアフィン変換の原理については、私の記事を参照してアフィン変換を理解してください。

  • アフィン変換
#定义一个图像的平移矩阵
M = np.array([[1,0,10],[0,1,30]])
#仿射变换
affine_img = ndimage.affine_transform(img,M)
plt.imshow(affine_img)

plt.show()

ここに画像の説明を挿入

  • 画像の回転
#旋转图像
#reshape设置是否显示所有的图像,True显示所有,False则会对图像进行裁剪
rotate_img = ndimage.rotate(img,45,reshape=False)
plt.imshow(rotate_img)
plt.show()

ここに画像の説明を挿入

  • 画像のスケーリング
#将图像缩小到原来的1/2
zoom_img = ndimage.zoom(img,0.5)
plt.imshow(zoom_img)
plt.show()

ここに画像の説明を挿入

  • 幾何補間 画像位置変換関数を定義する
    ことで幾何補間を実現できますgeometric_transform. 以下に定義した関数はshift_func画像を左下隅に 1 ピクセル移動することができ、境界外の位置はデフォルトで 0 で埋められます。
a = np.arange(0,12).reshape((4,3))
def shift_func(output_coords):
    #定义插值的函数
    return (output_coords[0] - 1,output_coords[1] - 1)
#根据数据的坐标来变换坐标的像素值
t_a = ndimage.geometric_transform(a,shift_func)
"""
[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]]
[[0 0 0]
 [0 0 1]
 [0 3 4]
 [0 6 7]]
"""

Supongo que te gusta

Origin blog.csdn.net/sinat_29957455/article/details/124660862
Recomendado
Clasificación