RoBoLoG

[Python] Opencv로 간단한 모자이크 만들기 본문

Study/Python

[Python] Opencv로 간단한 모자이크 만들기

SKJun 2023. 6. 20. 15:29

OpenCV를 사용하여 이미지에서 특정 부분을 모자이크 처리하는 방법은 다음과 같습니다:

 

import cv2

# 이미지 로드
image = cv2.imread("input.jpg")

# 모자이크 처리할 영역 좌표
x, y, w, h = 100, 100, 200, 200

# 모자이크 처리할 영역 추출
roi = image[y:y+h, x:x+w]

# 추출한 영역 축소 후 확대 (모자이크 효과)
factor = 10
small_roi = cv2.resize(roi, (w // factor, h // factor))
mosaic_roi = cv2.resize(small_roi, (w, h), interpolation=cv2.INTER_NEAREST)

# 모자이크 처리된 영역을 원본 이미지에 적용
image[y:y+h, x:x+w] = mosaic_roi

# 결과 이미지 출력
cv2.imshow("Mosaic Result", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

위의 코드 예시에서는 "input.jpg"라는 이미지 파일을 로드하고, (100, 100) 좌표부터 가로 200, 세로 200 크기의 영역을 모자이크 처리하고 있습니다. 모자이크 처리를 원하는 영역의 좌표와 크기를 조정하여 원하는 부분을 선택할 수 있습니다.

모자이크 처리 과정은 다음과 같이 진행됩니다:

  1. 모자이크 처리할 영역을 추출합니다.
  2. 추출한 영역을 축소하여 모자이크 효과를 생성합니다. factor 변수를 조정하여 모자이크의 세부 수준을 조절할 수 있습니다.
  3. 축소된 영역을 원본 크기로 확대합니다. 확대할 때 cv2.INTER_NEAREST 보간법을 사용하여 픽셀을 근접한 값으로 대체하여 모자이크 효과를 적용합니다.
  4. 모자이크 처리된 영역을 원본 이미지에 적용합니다.
  5. 결과 이미지를 출력합니다.

이 코드를 실행하면 모자이크 처리된 결과 이미지가 표시됩니다. 원하는 이미지 파일과 영역을 선택하여 위 코드를 수정하고 실행하여 특정 부분을 모자이크 처리할 수 있습니다.

728x90
반응형