scipy+scikit-image | 제4회 파이썬 리모트 사내 연구회
18513 단어 scipy파이썬공부회scikit-imagenumpy
오늘은, 전반 최종회. "Scipy", "scikit-image (이미지 처리)"에 대해 다룹니다.
이번에는 과학계산 라이브러리를 이용하기도 하고, 수학적인 내용에도 보충으로서 조금 살펴보겠습니다.
이 공부회에 대해서
각 회 30~60분 정도. 덜컹 거리지 않고 파이썬 why, what을 공유하는 시간이됩니다.
기본적인 프로그래밍 등의 구현은 회내는 하지 않고, 실행 데모 정도를 예정하고 있습니다. 숙제도 특별히 없기 때문에 각자 공부한 것을 재학습해 가 주세요.
전반(기초편)
지금까지의 공부회의 과거 로그는 이쪽.
제1회 : htps : // m / c ぁ s fu x / ms / ed dba 3 8971 아 067b88b
제2회 : h tps:// 퀵했다. 작은 m/c ぁ s 포x/있어 MS/095C4f4b8 아 9247 아 4392
제 3 회 : htps : // 이 m / c ぁ s fu x / ms / 825116980 c7 또는 255 a13
제4회 : htps : // 이 m / c ぁ s f x / ms / 9 a 4b8 a 513fd5b642534d
SciPy
htps //w w. s py. rg/
htps : // 이 m/세아 rch? q=s하고 py
scipy, 고급 과학 계산을 수행하는 라이브러리. 전회 공부한 numpy는 배열이나 행렬의 연산을 실시할 수 있지만, 그들도 처리할 수 있어 한층 더 신호 처리, 화상 처리, 통계라고 하는 계산이 가능.
※scipy를 사용하려면 numpy가 필요하므로 numpy도 설치하는 것.
1. 적분
scipytest.py
#coding: UTF-8
from scipy import integrate
# 3x + 5を積分する
def func(x):
return 3*x + 5
result, err = integrate.quad(func, 0, 5)
print('Integration Result : {0}\nError : {1}'.format(result, err))
(보충 1) 함수의 정의, 실행
def 関数名(引数) : return 数式など
와 같이 함수를 정의 할 수 있습니다.(関数名, 引数...)
와 같이 실행해 갈 수 있다.
htps : // / cs. py 응. jp / 3 / b et al. HTML
(보충 2) 적분
htps : // 그럼.ぃきぺぢ아. 오 rg/우우키/%에7%아9%8D%에5%88%86%에6%B3%95
2. 미분 방정식
scipytest2.py
#coding: UTF-8
from scipy.integrate import odeint #微分
import numpy as np # numpyを使う
import matplotlib.pyplot as plt
# 微分方程式(frac{dx(t)}{dt} = -3a x)
def diff_op(x, time, a):
return -3*a*x
x0 = 4.0
a = 3.0
time = np.linspace(0,3,50)
traject = odeint(diff_op, x0 ,time, args=(a,))
# 描画
plt.plot(time, traject, '-k', linewidth=3)
plt.xlabel('t', fontsize=24)
plt.ylabel('x', fontsize=24,rotation='horizontal')
plt.show()
(보충 3) 미분
htps : // 그럼.ぃきぺぢ아. 오 rg/우우키/%에5%베%아에%에5%88%86%에6%96%B9%에7%아8%8B%에5%BC%8F
3. Numpy 행렬 처리
scipytest3.py
#coding: UTF-8
from scipy import linalg
import numpy as np # numpyを使う
narray = np.array([[1, 3], [2, 5]])
inv_narray = linalg.inv(narray)
print('narrayの逆行列:\n{}\n'.format(inv_narray))
result_det = linalg.det(inv_narray)
print('inv_narrayの行列式:{}\n'.format(result_det))
inv_narray_norm = linalg.norm(inv_narray)
print('inv_narrayのノルム:{}'.format(inv_narray_norm))
(보충 4) 역행렬, 행렬식, 규범
역행렬
htps //w w.ぇbぃ오. jp / 혼텐 t / % 9 % 80 % 86 % 8 % A 1 % 8 C % 5 % 88 % 97
행렬식
htps //w w.ぇbぃ오. jp / 혼텐 t / % 8 % 1 % 8C % 5 % 88 % 97 % 5 % BC % 8F
행렬 규범
htps : // 그럼.ぃきぺぢ아. 오 rg / 우키 / % 8 % 1 % 8C % 5 % 88 % 97 % 3 % 83 % 8 % 3 % 83 % B % 3 % 83 % 0
scikit-image
scikit-image라는 이미지 처리 라이브러리를 설치하여 이미지 처리를 할 수 있습니다.
skimagetest.py
#coding: UTF-8
import numpy as np
from skimage import io
from skimage.color import rgb2gray
import skimage.filters as fil
import skimage.filters.rank as rank
import skimage.morphology as mor
# 画像表示
I = io.imread('images/lena.jpg')
print(I.shape)
io.imshow(I)
io.show()
# グレースケール変換
G = rgb2gray(I)
io.imshow(G)
io.show()
# 画像の保存
io.imsave('images/lenagray.jpg', G)
# 2値化(大津式)
img = io.imread('images/lena.jpg',as_grey=True,plugin=None,flatten=None)
thrOtsu = fil.threshold_otsu(img)
# 二値化
thrImg = ((thrOtsu < img) * 255).astype(np.uint8)
io.imshow(thrImg)
io.show()
# ガウシアンフィルタ
sigma = 1
gauImg = fil.gaussian_filter(img, sigma=sigma)
io.imshow(gauImg)
io.show()
# メジアンフィルタ
selem = mor.disk(10)
medImg = rank.median(img, selem=selem)
io.imshow(medImg)
io.show()
원본 이미지(lena.jpg)
그레이 스케일
이진화
가우시안 필터
메디안 필터
다음 예정
제4회는 여기까지. 다음 번 이후의 라인업은 아래를 참조하십시오.
※내용이 대폭 변경되는 경우도 있습니다.
지금까지의 공부회의 과거 로그는 이쪽.
제1회 : htps : // m / c ぁ s fu x / ms / ed dba 3 8971 아 067b88b
제2회 : h tps:// 퀵했다. 작은 m/c ぁ s 포x/있어 MS/095C4f4b8 아 9247 아 4392
제 3 회 : htps : // 이 m / c ぁ s fu x / ms / 825116980 c7 또는 255 a13
제4회 : htps : // 이 m / c ぁ s f x / ms / 9 a 4b8 a 513fd5b642534d
후반(응용편)의 예정
후반의 공부회는 2018년 3월을 예정. 전반에 접해 온 기초를 활용하면서, 보다 실용적·실천적인 것을 봅니다.
지금까지의 공부회의 과거 로그는 이쪽.
제1회 : htps : // m / c ぁ s fu x / ms / ed dba 3 8971 아 067b88b
제2회 : h tps:// 퀵했다. 작은 m/c ぁ s 포x/있어 MS/095C4f4b8 아 9247 아 4392
제 3 회 : htps : // 이 m / c ぁ s fu x / ms / 825116980 c7 또는 255 a13
제4회 : htps : // 이 m / c ぁ s f x / ms / 9 a 4b8 a 513fd5b642534d
SciPy
htps //w w. s py. rg/
htps : // 이 m/세아 rch? q=s하고 py
scipy, 고급 과학 계산을 수행하는 라이브러리. 전회 공부한 numpy는 배열이나 행렬의 연산을 실시할 수 있지만, 그들도 처리할 수 있어 한층 더 신호 처리, 화상 처리, 통계라고 하는 계산이 가능.
※scipy를 사용하려면 numpy가 필요하므로 numpy도 설치하는 것.
1. 적분
scipytest.py
#coding: UTF-8
from scipy import integrate
# 3x + 5を積分する
def func(x):
return 3*x + 5
result, err = integrate.quad(func, 0, 5)
print('Integration Result : {0}\nError : {1}'.format(result, err))
(보충 1) 함수의 정의, 실행
def 関数名(引数) : return 数式など
와 같이 함수를 정의 할 수 있습니다.(関数名, 引数...)
와 같이 실행해 갈 수 있다.htps : // / cs. py 응. jp / 3 / b et al. HTML
(보충 2) 적분
htps : // 그럼.ぃきぺぢ아. 오 rg/우우키/%에7%아9%8D%에5%88%86%에6%B3%95
2. 미분 방정식
scipytest2.py
#coding: UTF-8
from scipy.integrate import odeint #微分
import numpy as np # numpyを使う
import matplotlib.pyplot as plt
# 微分方程式(frac{dx(t)}{dt} = -3a x)
def diff_op(x, time, a):
return -3*a*x
x0 = 4.0
a = 3.0
time = np.linspace(0,3,50)
traject = odeint(diff_op, x0 ,time, args=(a,))
# 描画
plt.plot(time, traject, '-k', linewidth=3)
plt.xlabel('t', fontsize=24)
plt.ylabel('x', fontsize=24,rotation='horizontal')
plt.show()
(보충 3) 미분
htps : // 그럼.ぃきぺぢ아. 오 rg/우우키/%에5%베%아에%에5%88%86%에6%96%B9%에7%아8%8B%에5%BC%8F
3. Numpy 행렬 처리
scipytest3.py
#coding: UTF-8
from scipy import linalg
import numpy as np # numpyを使う
narray = np.array([[1, 3], [2, 5]])
inv_narray = linalg.inv(narray)
print('narrayの逆行列:\n{}\n'.format(inv_narray))
result_det = linalg.det(inv_narray)
print('inv_narrayの行列式:{}\n'.format(result_det))
inv_narray_norm = linalg.norm(inv_narray)
print('inv_narrayのノルム:{}'.format(inv_narray_norm))
(보충 4) 역행렬, 행렬식, 규범
역행렬
htps //w w.ぇbぃ오. jp / 혼텐 t / % 9 % 80 % 86 % 8 % A 1 % 8 C % 5 % 88 % 97
행렬식
htps //w w.ぇbぃ오. jp / 혼텐 t / % 8 % 1 % 8C % 5 % 88 % 97 % 5 % BC % 8F
행렬 규범
htps : // 그럼.ぃきぺぢ아. 오 rg / 우키 / % 8 % 1 % 8C % 5 % 88 % 97 % 3 % 83 % 8 % 3 % 83 % B % 3 % 83 % 0
scikit-image
scikit-image라는 이미지 처리 라이브러리를 설치하여 이미지 처리를 할 수 있습니다.
skimagetest.py
#coding: UTF-8
import numpy as np
from skimage import io
from skimage.color import rgb2gray
import skimage.filters as fil
import skimage.filters.rank as rank
import skimage.morphology as mor
# 画像表示
I = io.imread('images/lena.jpg')
print(I.shape)
io.imshow(I)
io.show()
# グレースケール変換
G = rgb2gray(I)
io.imshow(G)
io.show()
# 画像の保存
io.imsave('images/lenagray.jpg', G)
# 2値化(大津式)
img = io.imread('images/lena.jpg',as_grey=True,plugin=None,flatten=None)
thrOtsu = fil.threshold_otsu(img)
# 二値化
thrImg = ((thrOtsu < img) * 255).astype(np.uint8)
io.imshow(thrImg)
io.show()
# ガウシアンフィルタ
sigma = 1
gauImg = fil.gaussian_filter(img, sigma=sigma)
io.imshow(gauImg)
io.show()
# メジアンフィルタ
selem = mor.disk(10)
medImg = rank.median(img, selem=selem)
io.imshow(medImg)
io.show()
원본 이미지(lena.jpg)
그레이 스케일
이진화
가우시안 필터
메디안 필터
다음 예정
제4회는 여기까지. 다음 번 이후의 라인업은 아래를 참조하십시오.
※내용이 대폭 변경되는 경우도 있습니다.
지금까지의 공부회의 과거 로그는 이쪽.
제1회 : htps : // m / c ぁ s fu x / ms / ed dba 3 8971 아 067b88b
제2회 : h tps:// 퀵했다. 작은 m/c ぁ s 포x/있어 MS/095C4f4b8 아 9247 아 4392
제 3 회 : htps : // 이 m / c ぁ s fu x / ms / 825116980 c7 또는 255 a13
제4회 : htps : // 이 m / c ぁ s f x / ms / 9 a 4b8 a 513fd5b642534d
후반(응용편)의 예정
후반의 공부회는 2018년 3월을 예정. 전반에 접해 온 기초를 활용하면서, 보다 실용적·실천적인 것을 봅니다.
후반의 공부회는 2018년 3월을 예정. 전반에 접해 온 기초를 활용하면서, 보다 실용적·실천적인 것을 봅니다.
Reference
이 문제에 관하여(scipy+scikit-image | 제4회 파이썬 리모트 사내 연구회), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/classfox/items/9a4b8a513fd5b642534d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)