import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('pengine.png')
plt.imshow(img[:,:,::-1]); plt.axis('off');plt.title("Input_image")
median_filter_3 =cv2.medianBlur(img, 3)
median_filter_9 =cv2.medianBlur(img, 9)
median_filter_21 =cv2.medianBlur(img, 15)
plt.figure(figsize= (10,10))
plt.subplot(311);plt.imshow(median_filter_3[:,:,::-1]); plt.axis('off');plt.title("median 3*3")
plt.subplot(312);plt.imshow(median_filter_9[:,:,::-1]); plt.axis('off');plt.title("median 9*9")
plt.subplot(313);plt.imshow(median_filter_21[:,:,::-1]); plt.axis('off');plt.title("median 15*15")
bilateral filter 수식
- 색상 가중치 ( ): 값이 커질 수록 인접영역의 중심셀과 비슷한 밝기 값에 가중치를 늘려준다
- 공간 가중치 ( ) :값이 커질 수록 중심 픽셀의 거리차이에 의한 가중치를 늘려준다.
IC_circuit = cv2.imread('IC_circuit.jpg')
IC_circuit_3 =cv2.medianBlur(IC_circuit, 7)
IC_circuit_9 =cv2.GaussianBlur(IC_circuit, (7,7), cv2.BORDER_DEFAULT)
IC_circuit_21 =cv2.bilateralFilter(IC_circuit, d=50,sigmaColor = 100, sigmaSpace = 70)
plt.figure(figsize= (10,10))
plt.subplot(221);plt.imshow(IC_circuit[:,:,::-1]); plt.axis('off');plt.title("Orignal")
plt.subplot(222);plt.imshow(IC_circuit_3[:,:,::-1]); plt.axis('off');plt.title("median filter")
plt.subplot(223);plt.imshow(IC_circuit_9[:,:,::-1]); plt.axis('off');plt.title("gaussian filter")
plt.subplot(224);plt.imshow(IC_circuit_21[:,:,::-1]); plt.axis('off');plt.title("bilateralFilter")
IC_circuit = cv2.imread('IC_circuit.jpg')
IC_circuit_3 =cv2.medianBlur(IC_circuit, 7)
IC_circuit_21 =cv2.bilateralFilter(IC_circuit_3, d=50,sigmaColor = 100, sigmaSpace = 70)
plt.figure(figsize= (20,20))
plt.subplot(311);plt.imshow(IC_circuit[:,:,::-1]); plt.axis('off');plt.title("Orignal")
plt.subplot(312);plt.imshow(IC_circuit_3[:,:,::-1]); plt.axis('off');plt.title("median filter")
plt.subplot(313);plt.imshow(IC_circuit_21[:,:,::-1]); plt.axis('off');plt.title("bilateralFilter")
IC_image_HSI = cv2.cvtColor(IC_circuit,cv2.COLOR_BGR2HSV)
IC_avg_gauss3_HSI = cv2.cvtColor(IC_circuit_3,cv2.COLOR_BGR2HSV)
IC_avg_bilateral_HSI = cv2.cvtColor(IC_circuit_21,cv2.COLOR_BGR2HSV)
hist_original =cv2.calcHist(images = [IC_image_HSI],
channels = [2],
mask = None,
histSize = [256],
ranges = [0,255])
hist_median =cv2.calcHist(images = [IC_avg_gauss3_HSI],
channels = [2],
mask = None,
histSize = [256],
ranges = [0,255])
hist_bilateral =cv2.calcHist(images = [IC_avg_bilateral_HSI],
channels = [2],
mask = None,
histSize = [256],
ranges = [0,255])
plt.plot(hist_original,label='Original');plt.xlim([0,256]);plt.yscale('log')
plt.plot(hist_median,label='median_filter');plt.xlim([0,256]);plt.yscale('log')
plt.plot(hist_bilateral,label='bilateralFilter');plt.xlim([0,256]);plt.yscale('log')
plt.title('Kernal compairison of intensity scale')
plt.legend()
plt.show()