[OpenCV] Basic 8 - 이미지 블러 처리 (Blur)
반응형
Blur(블러)는 이미지를 부드럽게 만들어주는 필터로, 노이즈를 제거하거나 이미지의 중요한 부분을 강조할 때 사용합니다. 예를 들어, 사진에서 배경을 부드럽게 처리하여 피사체에 집중하게 만들고 싶을 때 유용합니다. OpenCV에서는 다양한 블러 방법을 제공합니다.
Import packages
import cv2 import numpy as np import matplotlib.pyplot as plt
Function to Display Images in Jupyter Notebook
Jupyter Notebook 및 Google Colab에서 이미지를 표시할 수 있도록 Function으로 정의합니다.
def img_show(title='image', img=None, figsize=(8, 5)): plt.figure(figsize=figsize) if type(img) == list: titles = title if type(title) == list else [title] * len(img) for i in range(len(img)): rgbImg = cv2.cvtColor(img[i], cv2.COLOR_GRAY2RGB) if len(img[i].shape) <= 2 else cv2.cvtColor(img[i], cv2.COLOR_BGR2RGB) plt.subplot(1, len(img), i + 1) plt.imshow(rgbImg) plt.title(titles[i]) plt.xticks([]), plt.yticks([]) plt.show() else: rgbImg = cv2.cvtColor(img, cv2.COLOR_GRAY2RGB) if len(img.shape) < 3 else cv2.cvtColor(img, cv2.COLOR_BGR2RGB) plt.imshow(rgbImg) plt.title(title) plt.xticks([]), plt.yticks([]) plt.show()
Load Image
이미지를 불러옵니다.
cv2_image = cv2.imread('asset/images/test_image.jpg', cv2.IMREAD_COLOR)
Blur
OpenCV에서 이미지를 블러 처리하는 방법으로는 주로 GaussianBlur, MedianBlur, BilateralFilter 등이 있습니다. 각 방법은 서로 다른 효과를 제공하므로, 목적에 맞는 블러 방법을 선택할 수 있습니다.
Gaussian Blur
가장 일반적인 블러 방식으로, 가우시안 커널을 사용해 주변 픽셀의 평균값을 계산하여 이미지를 부드럽게 만듭니다.
gaussian_blur = cv2.GaussianBlur(cv2_image, (15, 15), 0) img_show("Gaussian Blur", gaussian_blur)

Median Blur
노이즈 제거에 효과적이며, 특히 이미지 내 점 형태의 노이즈를 제거하는 데 유용합니다. 커널 내의 중간값으로 픽셀 값을 대체합니다.
median_blur = cv2.medianBlur(cv2_image, 15) img_show("Median Blur", median_blur)

Bilateral Filter
엣지를 유지하면서 블러를 적용하는 방법으로, 고급스러운 블러 처리가 필요할 때 사용됩니다. 공간적인 거리에 따라 가중치를 주기 때문에 엣지가 뚜렷하게 남습니다.
bilateral_blur = cv2.bilateralFilter(cv2_image, 15, 75, 75) img_show("Bilateral Filter", bilateral_blur)

위와 같이 다양한 블러 기법을 사용해 이미지를 부드럽게 처리할 수 있습니다. 각 방법은 특유의 효과를 가지고 있으므로, 작업 목적에 따라 적절한 블러 방식을 선택하면 좋습니다.
반응형
'Tech & Development > Image Processing' 카테고리의 다른 글
[OpenCV] Basic 10 - 이미지 색상 변환 (Color Conversion) (1) | 2024.11.16 |
---|---|
[OpenCV] Basic 9 - 이미지 경계선 검출 (Edge Detection) (0) | 2024.11.15 |
[ OpenCV ] Basic 7 - 이미지 자르기 (Crop) (0) | 2022.11.21 |
[ OpenCV ] Basic 6 - 이미지 크기조정 (Resize) (0) | 2022.03.02 |
[ OpenCV ] Basic 5 - 이미지 상하, 좌우 대칭 (Flip) (0) | 2022.03.02 |
댓글
이 글 공유하기
다른 글
-
[OpenCV] Basic 10 - 이미지 색상 변환 (Color Conversion)
[OpenCV] Basic 10 - 이미지 색상 변환 (Color Conversion)
2024.11.16이미지 색상 변환은 이미지를 다양한 색상 공간으로 변환하여 처리할 수 있도록 하는 작업입니다. OpenCV에서는 여러 색상 공간(BGR, RGB, Grayscale, HSV, Lab 등)을 지원하며, 상황에 따라 적절한 색상 공간을 선택해 이미지 분석이나 필터링 작업을 수행할 수 있습니다. 특히 색상 공간 변환은 색상 추출, 객체 탐지, 이미지 분할 등에 유용합니다.Import packagesimport cv2import matplotlib.pyplot as pltFunction to Display Images in Jupyter NotebookJupyter Notebook 및 Google Colab에서 이미지를 표시할 수 있도록 Function으로 정의합니다.def img_show(title='imag… -
[OpenCV] Basic 9 - 이미지 경계선 검출 (Edge Detection)
[OpenCV] Basic 9 - 이미지 경계선 검출 (Edge Detection)
2024.11.15경계선 검출(Edge Detection)은 이미지에서 물체의 윤곽선을 찾아내는 방법입니다. 이미지 내에서 밝기가 급격히 변하는 부분을 탐지하여 객체의 형태를 추출할 수 있습니다. OpenCV에서는 여러 가지 경계선 검출 기법을 제공합니다. 대표적으로 Canny Edge Detection과 Sobel Filter가 많이 사용됩니다.Import packagesimport cv2import numpy as npimport matplotlib.pyplot as pltFunction to Display Images in Jupyter NotebookJupyter Notebook 및 Google Colab에서 이미지를 표시할 수 있도록 Function으로 정의합니다.def img_show(title='image',… -
[ OpenCV ] Basic 7 - 이미지 자르기 (Crop)
[ OpenCV ] Basic 7 - 이미지 자르기 (Crop)
2022.11.21Image Crop Crop은 이미지에서 필요한 이미지의 일부만 잘라내기 위해 사용합니다. 예를들어, 이미지에서 얼굴 영역만 찾아 잘라내는 기능을 개발한다면 Crop을 통해 잘라낼 수 있습니다. Import packages import cv2 import imutils import matplotlib.pyplot as plt Jupyter Notebook 및 Google Colab에서 이미지를 표시할 수 있도록 Function으로 정의 def img_show(title='image', img=None, figsize=(8 ,5)): plt.figure(figsize=figsize) if type(img) == list: if type(title) == list: titles = title else: ti… -
[ OpenCV ] Basic 6 - 이미지 크기조정 (Resize)
[ OpenCV ] Basic 6 - 이미지 크기조정 (Resize)
2022.03.02Image Resize 고해상도의 이미지는 사람의 눈으로 보기에는 좋아 보이지만 컴퓨터가 연산하거나 이미지 파이프라인 처리에는 좋지 않을 수 있습니다. 이미지가 큰 경우 더 많은 데이터가 필요하기 때문에 알고리즘이 데이터를 처리하는 데 오래 걸리기 때문입니다. 이런 고해상도 이미지는 매우 디테일하지만, 컴퓨터 비전/이미지 처리 관점에서 볼 때 이러한 디테일한 사항보다는 이미지의 구조적 구성 요소가 더 중요하기 때문에 고해상도의 이미지를 다운샘플링하여 더 빠르고 정확하게 실행될 수 있도록 합니다. Import packages import cv2 import imutils import matplotlib.pyplot as plt Jupyter Notebook 및 Google Colab에서 이미지를 표시하고 …
댓글을 사용할 수 없습니다.