본문 바로가기
PROGRAMING📚/Python📑

[파이썬 Python] Gabor Filters(가보르 필터) 이미지 적용하기

Ta이니 2023. 2. 14.
728x90
반응형

 

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

ksize = 5
sigma =3
theta =1*np.pi/4
lamda = 1*np.pi/4
gamma =0.5
phi =0

kernel = cv2.getGaborKernel((ksize, ksize),sigma, theta, lamda, gamma, phi, ktype = cv2.CV_32F)
plt.imshow(kernel)

 

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

ksize = 50
sigma =3
theta =1*np.pi/4
lamda = 1*np.pi/4
gamma =0.5
phi =0

kernel = cv2.getGaborKernel((ksize, ksize),sigma, theta, lamda, gamma, phi, ktype = cv2.CV_32F)
plt.imshow(kernel)

 

 

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

ksize = 50
sigma =30
theta =1*np.pi/4
lamda = 1*np.pi/4
gamma =0.5
phi =0

kernel = cv2.getGaborKernel((ksize, ksize),sigma, theta, lamda, gamma, phi, ktype = cv2.CV_32F)
plt.imshow(kernel)

 

다음 변수의 값을 변경해 가면서 이미지에 적합한 필터를 사용해서 적용하면된다.

 

 

Opencv getGaborKernel 함수 매개 변수

더보기

ksize

반환된 필터의 크기

 

sigma

가우스 엔벨로프의 표준 편차

 

theta

Gabor 함수의 평행 스트라이프에 대한 법선 방향.

 

lambda

사인파 인자의 파장

 

gamma

공간 가로 세로의 비율

 

psi

위상 오프셋

 

ktype

필터 계수의 유형

CV_32F 와 CV_64F 가 있음

 

Copyright by  Juergen Muller

 

 

https://www.youtube.com/watch?v=QEz4bG9P3Qs&ab_channel=DigitalSreeni

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

ksize = 50
sigma =3
#theta =1*np.pi/4
theta =1.79
lamda =1*np.pi/4

gamma =0.5
phi =0

kernel = cv2.getGaborKernel((ksize, ksize),sigma, theta, lamda, gamma, phi, ktype = cv2.CV_32F)
#plt.imshow(kernel)
#img = cv2.imread('apple.jpg')
img = cv2.imread('tree.jpg')
#img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #회색

fimg = cv2.filter2D(img, cv2.CV_8UC3,kernel)  
kernel_resized = cv2.resize(kernel, (400,400))

cv2.imshow('Original Image',img)
cv2.imshow('Filtered Image',fimg)
cv2.imshow('kernel', kernel_resized)

cv2.waitKey()
cv2.destoryAllWindows()

 

728x90
반응형

댓글