Scippy(科学計算キット)
3467 ワード
記事の目次フーリエ変換を使用してノイズを除去する matplotlib.pylotで円を描きます. Scripyファイル入出力 書き込み配列ファイル 読み書き画像 [pillow]https://pillow.readthedocs.io/en/latest/)画像処理 scipyのndimageを使って画像を処理する フーリエ変換を使ってノイズを除去します.
コードはjupyter notebookの写真に基づいてリンクします.
読み書き配列ファイル
画像の位置
写真のリンク
コードはjupyter notebookの写真に基づいてリンクします.
import numpy as np
import matplotlib.pyplot as plt
from scipy import fftpack
%matplotlib inline
#
img = plt.imread('data/moolanding.png')
#
plt.imshow(img)
# , ( )---> ( )——> ,
img_fft = fftpack.fft2(img)# ,
#
# np.where(condition, x, y) condition x, , y
# 800 0,800 ,
img_filter = np.where(np.abs(img_fft)>8e2,0,img_fft)
# , ,
img_result = np.real(moon_filter)
#
plt.figure(figsize=(12,9))
#
plt.imshow(img_result,cmap='gray')
matplotlib.pylotを使って円を描きます.import matplotlib.pyplot as plt
# :(x-a)**2+(y-b)**2 = R**2
# 1,
x = np.linspace(-1,1,1000) # -1 1 1000
y = (1-x**2)**0.5 # y
#
plt.plot(x, y)
#
plt.plot(x,y,x,-y)
#
import scipy.integrate as integrate
# ,deviation
#
half_areas,deviation = integrate.quad(lambda x :(1-x**2)**0.5, -1, 1)
half_areas
Scripyファイル入出力読み書き配列ファイル
from scipy import io as spio
# img_result
# .mat,
spio.savemat('moon.mat',{'moon':img_result})
# io.loadmat() .mat
data = spio.loadmat('moon.mat')
data
絵を読み、書きます画像の位置
import imageio
#
cat = imageio.imread('data/cat.jpg')
#
imageio.imwrite('cat.jpg',cat)
#
import skimage.transform as st
# mode :{'constant', 'edge', 'symmetric', 'reflect', 'wrap'}
#
cat_rotate = st.rotate(cat, angle=90,mode='wrap')
plt.imshow(cat_rotate)
# skimage.transform , 1.2.0
# Pillow
pillow画像処理from PIL import Image,ImageFilter
cat = Image.open('data/cat.jpg')
#
cat
# cat ,
# ImageFilter. tab
cat.filter(ImageFilter.SHARPEN)
# pillow python , , ,
scipyのndimageを使って画像を処理します.写真のリンク
from matplotlib import pyplot as plt
from scipy import ndimage
face = plt.imread('data/huanxiong.jpg')
plt.imshow(face)
# shift ,
# {'reflect', 'constant', 'nearest', 'mirror', 'wrap'}
face_shift = ndimage.shift(face, (200,300,0), mode="wrap")
plt.imshow(face_shift)
# rotate,180
face_rotate = ndimage.rotate(face,angle=180,model='reflect')
# ,zoom , ,
face_zoom = plt.imread('data/huanxiong.jpg',gray=True)
face_zoom = ndimage.zoom(face,zoom(0.3,0.6))
plt.imshow(face_zoom,cmap='gray)
# ,
face_noise = face.copy().astype(np.float64)
face_noise+=*face_noise.std()*np.random.randn(*face.shape)
plt.imshow(face_noise,cmap='gray')
# sigma:
face_gaussian = ndimage.gaussian_filter(face_noise, sigma=1)
# size: ,
face_median = ndimage.median_filter(face_noise, size=5)
# signal mysize:
import scipy.signal as signal
face_wiener = signal.wiener(face_noise, mysize=4)