Interface2017年05月号新画像処理101を読む

6-5 より自然にボカす「ガウシアン・フィルタ」

import cv2
import numpy as np
from matplotlib import pyplot as plt

img_src = cv2.imread("data/img_6-5.bmp")
#第二引数はカーネルサイズ,第三引数は標準偏差
img_dst = cv2.GaussianBlur(img_src,(5,5),1)

#描画する
cv2.imshow("img_src",img_src)
cv2.imshow("img_dst",img_dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

f:id:bitop:20180310114550p:plain

標準偏差 0
f:id:bitop:20180310114636p:plain

標準偏差 1
f:id:bitop:20180310114728p:plain

標準偏差 2
f:id:bitop:20180310114825p:plain

標準偏差 3
f:id:bitop:20180310114910p:plain

標準偏差 4
f:id:bitop:20180310114958p:plain

標準偏差 5
f:id:bitop:20180310115049p:plain

Interface2017年05月号新画像処理101を読む

6-2 インパルス・ノイズ除去に優れた「中央値フィルタ」

import cv2
import numpy as np
from matplotlib import pyplot as plt

img_src = cv2.imread("data/img_6-2.bmp")
#第二引数はカーネルサイズ
img_dst = cv2.medianBlur(img_src,5)

#描画する
cv2.imshow("img_src",img_src)
cv2.imshow("img_dst",img_dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

f:id:bitop:20180310114119p:plain

f:id:bitop:20180310114157p:plain

Interface2017年05月号新画像処理101を読む

6-1 ぼかしの基本「平均値フィルタ」

import cv2
import numpy as np
from matplotlib import pyplot as plt

img_src = cv2.imread("data/img_6-1.bmp")

img_dst = cv2.blur(img_src,(3,3))

#描画する
cv2.imshow("img_src",img_src)
cv2.imshow("img_dst",img_dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

f:id:bitop:20180310113659p:plain

f:id:bitop:20180310113725p:plain

Interface2017年05月号新画像処理101を読む

"""
cv2.INTER_LANCZOS4 8x8 の近傍領域を利用する Lanczos法の補間
"""

img_src = cv2.imread("data/img_4-1.bmp")

img_dst = cv2.resize(img_src,None,fx=0.5, fy=0.5,interpolation=cv2.INTER_LANCZOS4)
#描画する
cv2.imshow("img_src",img_src)
cv2.imshow("img_dst",img_dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

f:id:bitop:20180218070629p:plain

f:id:bitop:20180308053441p:plain

Interface2017年05月号新画像処理101を読む

5-2 縮小

"""
cv2.INTER_CUBIC 4x4 の近傍領域を利用するバイキュービック補間
"""

img_src = cv2.imread("data/img_4-1.bmp")

img_dst = cv2.resize(img_src,None,fx=0.5, fy=0.5,interpolation=cv2.INTER_CUBIC)
#描画する
cv2.imshow("img_src",img_src)
cv2.imshow("img_dst",img_dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

f:id:bitop:20180218070629p:plain

f:id:bitop:20180308053241p:plain