これを貼って実行すると、線形フィルタ一式が、作成表示されます。
とりあえず確認するときにご活用ください。
(*いつものごとく、テスト画像は c:/temp/ts.jpg においてください。)
import cv2
import numpy as np
img = cv2.imread('c:/temp/ts.jpg')
cv2.imshow('base',img)
#NegaPosi反転
bitnot=cv2.bitwise_not(img)
cv2.imwrite('c:/temp/bitwise_not.jpg',bitnot)
cv2.imshow('bitwise_not',bitnot)
#平滑化
blu=cv2.blur(img,(5,5))
cv2.imwrite('c:/temp/blur.bmp',blu)
cv2.imshow('blur(heikatsuka)',blu)
#ガウシアン
gau=cv2.GaussianBlur(img,(3,1),3,3)
cv2.imwrite('c:/temp/gausian.bmp',gau)
cv2.imshow('gausian',gau)
#中央値平滑化
mbr=cv2.medianBlur(img,11)
cv2.imwrite('c:/temp/medianblur.bmp',mbr)
cv2.imshow('medianBlur',mbr)
#Sobel
sob=cv2.Sobel(img,-1,0,1)
cv2.imwrite('c:/temp/sobel.bmp',sob)
cv2.imshow('Sobel_filter',sob)
#laplacian
lap=cv2.Laplacian(img,-1)
cv2.imwrite('c:/temp/laplacian.bmp',lap)
cv2.imshow('laplacian',lap)
#LoG
log=cv2.Laplacian(gau,-1)
cv2.imwrite('c:/temp/log.bmp',log)
cv2.imshow('LoG',log)
#Cannyのエッジ検出
cann=cv2.Canny(img,40.0,200.0)
cv2.imwrite('c:/temp/Canny.bmp',cann)
cv2.imshow('Canny',cann)
#bilateralFilter
bil = cv2.bilateralFilter(img, 15, 20, 20)
cv2.imwrite('c:/temp/bil.bmp',bil)
cv2.imshow('bilateral',bil)
#ノンローカルミーンフィルタ
nlm = cv2.fastNlMeansDenoisingColored(img,None,10,10,7,21)
cv2.imwrite('c:/temp/Nonlocal_mean.bmp',nlm)
cv2.imshow('NonlocalMean',nlm)
#dirate
kernel=np.ones((3,3),np.uint8)
dila=cv2.dilate(img,kernel)
cv2.imwrite('c:/temp/dilate.bmp',dila)
cv2.imshow('dilate',dila)
#erode
ero=cv2.erode(img,kernel)
cv2.imwrite('c:/temp/erode.bmp',ero)
cv2.imshow('erode',ero)
#Mosic
SCALE=0.05
height=img.shape[0]
width=img.shape[1]
mos=cv2.resize(img,(round(width*SCALE),round(height*SCALE)),interpolation=cv2.INTER_NEAREST)
mos2=cv2.resize(mos,(width,height),interpolation=cv2.INTER_NEAREST)
cv2.imwrite('c:/temp/mosic.bmp',mos2)
cv2.imshow('mosic',mos2)
cv2.waitKey(0)
cv2.destroyAllWindows()
ディジタル画像処理 [改訂第二版]【電子書籍】[ ディジタル画像処理編集委員会 ] 価格:3,861円 |
Pythonで始めるOpenCV 4プログラミング [ 北山直洋 ] 価格:3,630円 |


コメント