hamlet-story
이미지 처리 기초 OpenCV와 Numpy로 이미지 다루기 본문
이미지 처리에 대한 기초를 OpenCV와 NumPy를 활용하여 설명하도록 하겠습니다.
이번 포스팅에서는 이미지 읽기, 저장, 기본 속성 확인, 픽셀 값 조작, 그리고 이미지 크기 조정과 같은 기본적인 이미지 처리 작업을 다룹니다.
목차
1. 이미지 읽기 및 표시하기
2. 이미지 저장하기
3. 이미지의 기본 속성 확인하기
4. 이미지의 픽셀 값에 접근하고 수정하기
5. 이미지의 크기 조정하기
이미지 읽기 및 표시하기
이미지 처리의 첫 걸음은 이미지를 읽고 표시하는 것입니다.
OpenCV를 사용하여 이미지를 읽는 방법과 간단한 코드 예제를 살펴보겠습니다.
OpenCV와 Numpy를 활용하여 이미지 처리에 입문해 봅시다.
먼저, 이미지를 읽어와서 화면에 표시하는 방법을 알아보겠습니다.
import cv2
import numpy as np
# 이미지 읽기
image = cv2.imread('example.jpg')
# 이미지 표시
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyALLWindows()
위 코드에서 'cv2.imread' 함수를 사용하여 이미지를 읽어오고, 'cv2.imshow' 함수로 화면에 표시합니다.
'cv2.waitKey(0)'은 사용자가 키보드 입력을 기다리는 역할을 하며, 'cv2.destroyAllWindows()'는 창을 닫습니다.
이미지 저장하기
이미지를 처리한 후에는 결과물을 저장하는 것이 중요합니다.
OpenCV를 사용하여 이미지를 저장하는 방법을 알아봅시다.
이미지를 처리하고 나면 그 결과물을 저장해야 합니다.
아래 코드는 openCV를 사용하여 이미지를 저장하는 예제입니다.
# 이미지 저장
cv2.imwrite('output.jpg', image)
'cv2.imwrite'함수를 사용하여 이미지를 저장할 수 있습니다.
위의 코드는 처리한 이미지를 'output.jpg'로 저장하는 예제입니다.
이미지의 기본 속성 확인하기
이미지 처리에서 중요한 부분은 이미지의 기본 속성을 확인하는 것입니다.
이미지의 크기, 색상 채널 수 등을 알아보겠습니다.
이미지의 기본 속성은 이미지 처리 작업을 수행하기 전에 확인해야 합니다.
아래 코드는 이미지의 크기와 색상 채널 수를 확인하는 방법을 보여줍니다.
# 이미지의 크기 확인
height, width = image.shape[:2]
print(f'이미지의 너비: {width}, 높이: {height}')
# 이미지의 색상 채널 수 확인
channels = image.shape[2] if len(image.shape) == 3 else 1
print(f'이미지의 색상 채널 수 : {channels}')
위 코드에서 'image.shape'는 이미지의 크기와 색상 채널 수를 반환합니다.
이미지의 픽셀 값에 접근하고 수정하기
이미지 처리에서 픽셀 값에 접근하고 수정하는 것은 매우 중요합니다.
이미지의 특정 부분을 조작하는 방법을 알아봅시다.
# 이미지의 특정 좌표의 픽셀 값 확인
pixel_value = image[100, 50]
print(f'특정 좌표의 픽셀 값: {pixel_value}')
# 이미지의 특정 좌표의 픽셀 값을 수정
image[100, 50] = [255, 255, 255] # 흰색으로 수정
위 코드에서'image [100, 50]'은 이미지의 (50, 100) 좌표의 픽셀 값을 반환하며, 이를 통해 해당 좌표의 픽셀 값을 확인하고 수정할 수 있습니다.
이미지 크기 조정하기
이미지의 크기를 조정하는 것은 다양한 이미지 처리 작업에서 필요한 중요한 단계입니다.
이미지 크기를 변경하고 화면에 표시하는 방법을 알아봅시다.
이미지의 크기를 조정하는 것은 이미지 처리에서 자주 사용되는 작업 중 하나입니다.
크기를 조정하면 이미지를 다양한 상황에 맞게 적용할 수 있습니다.
아래 코드는 이미지 크기를 조정하고 조정된 이미지를 화면에 표시하는 예제입니다.
# 이미지 크기 조정
resized_image = cv2.resize(image, (500, 300))
# 조정된 이미지 표시
cv2.imshow('Resized Image', resized_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
위 코드에서 cv2.resize 함수를 사용하여 이미지의 크기를 조정합니다.
첫 번째 인자로 원본 이미지를, 두 번째 인자로 조정할 크기를 전달합니다.
이미지의 크기를 조정함으로써 원하는 형태로 이미지를 가공할 수 있습니다.
이는 다양한 이미지 처리 작업에서 필수적인 단계 중 하나입니다.
결론
이처럼, 이미지 처리의 기초를 다지기 위한 첫 번째 단계를 알아보았습니다.
이미지 읽기, 저장, 기본 속성확인은 이미지 처리 작업을 시작하기에 중요한 단계입니다.
다음 시리즈에서는 이미지 필터링 및 처리에 대해서 다루어 보도록 하겠습니다.
'Language > Python' 카테고리의 다른 글
파이썬으로 OpenCV와 Numpy 를 활용하여 이미지 생성하기 (0) | 2024.01.09 |
---|---|
OpenCV - [실습] OpenCV와 함께하는 파이썬 이미지 및 비디오 처리 기초 (1) | 2024.01.08 |
NUMPY - [실습] 배열 구조 활용 (axis) (0) | 2024.01.07 |
NUMPY - [실습] 배열 구조 표현 (0) | 2024.01.06 |
PYTHON - [개념] GIL (Global Interpreter Lock) 에 대해서 알아보자 (0) | 2024.01.02 |