블러 메디안 가우시안 처리

9717 단어 파이썬OpenCV

실행 환경



Google 공동체

Google Colaboratory에서 이미지를 로드할 준비


from google.colab import files
from google.colab import drive
drive.mount('/content/drive')

필요한 라이브러리 로드


import cv2 #opencv
import matplotlib.pyplot as plt 
%matplotlib inline

이미지 준비


img = plt.imread("/content/drive/My Drive/Colab Notebooks/img/Lenna.bmp")
gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)

처리


plt.figure(figsize=(9, 9), dpi=100,
           facecolor='w', linewidth=0, edgecolor='w')

plt.gray()

#オリジナル画像
plt.subplot(2,3,1)
plt.axis('off') 
plt.title("Original", fontsize=10)
plt.imshow(gray)

#縮小(フィルタは見やすい用に)
plt.subplot(2,3,2)
plt.axis('off') 
gray = cv2.resize(gray,(5,5))
plt.title("shukusyo", fontsize=10)
plt.imshow(gray)

size = (3,3)
size2 = 3 

#blur(平均値)
plt.subplot(2,3,4)
plt.axis('off') 
plt.title("blur", fontsize=10)
dst = cv2.blur(gray,size)
plt.imshow(dst)

#medianBlur(中央値)
plt.subplot(2,3,5)
plt.axis('off') 
plt.title("medianBlur", fontsize=10)
dst = cv2.medianBlur(gray,size2)#size2は、中央値を取るため奇数である必要あり
plt.imshow(dst)

#GAUSSIAN 処理対象画素との距離によって重みを変え計算
plt.subplot(2,3,6)
plt.axis('off') 
plt.title("GAUSSIAN", fontsize=10)
sigmaX = 11
sigmaY = 11
dst = cv2.GaussianBlur(gray,size,sigmaX,sigmaY)
plt.imshow(dst)

plt.show()

결과





변화를 알기 쉽게,
화상을 5×5로 압축하고 나서 각종 처리를 실시했습니다.

계산 이미지는 이런 느낌입니다. (cv2.blur (gray, (3,3))의 예)
3x3 영역의 평균값이 처리 후 값으로 입력됩니다.



이번에는 anchor를 지정하지 않았기 때문에 중심을 기준으로 처리됩니다.
지정해 주는 것으로 처리 위치를 바꿀 수 있는 것 같습니다.

또, 외주의 틀을 넘는 계산 방법의 상세한 것은 하기 링크가 알기 쉬웠습니다.
이번에는 지정되지 않았기 때문에
border=Type = cv2.BORDER_DEFAULT(경계 화소의 중심에서 경영)
에서 실행 중입니다.
htp // w w5d. 비gぉ베. 네. jp / ~의 cyte / P 여과 라민 g / 오펜 CV. HTML#cv::보 r에서 린테 r포

좋은 웹페이지 즐겨찾기