: 실시간 컴퓨터 비전을 목적으로 한 프로그래밍 라이브러리.
실시간 이미지 프로세싱에 중점을 둔 라이브러리
이미지의 기하학적 변환 : 변동, 이동 등
형태 변형, 이미지 그라디언트, Edge Detection, 이미지 혼합, 윤곽선 찾기
이미지 변환 : 푸리에 변환, 코사인 변환 이미지에서 개체 검색, 원 등의 감지, 이미지 분할
matplotlib의 imread() 로 파일을 읽어온다.
읽어 온 파일을 출력해 보면 3개의 채널을 갖는 이미지 배열임을 확인해 볼 수 있음.
행과 열의 수는 이미지의 세로, 가로 크기
이렇게 불러온 이미지의 R, G, B
myimg_path = 'myimg.jpeg'
myimg = plt.imread(myimg_path)
plt.imshow(myimg)
# plt.axis('off') 축 제거 옵션
✅ 0번 인덱스 채널
plt. imshow(myimg[:, ;, 0])
✅ 1번 인덱스 채널
plt. imshow(myimg[:, ;, 1])
✅ 2번 인덱스 채널
plt. imshow(myimg[:, ;, 2])
import cv2
img = cv2.imread(img_path, cv2.IMREAD_COLOR)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img.shape
✅ resize 로 이미지 크기 150X150 픽셀로 크기 변경
image_150x150 = cv2.resize(img, (150, 150)
plt.imshow(image_150x150, cmap='gray')
plt.axis('off')
plt.show()
✅ IMREAD_GRAYSCALE 을 통해 흑백 이미지로 변환
image = cv2.imread(img_path, cv2.IMREAD_GRAYSCALE)
plt.imshow(image, cmap='gray')
plt.axis('off')
plt.show()
✅ blur 을 통해 각 픽셀 주변의 50x50 커널 평균값으로 이미지를 블러
image_blurry = cv2.blur(image, (50, 50))
plt.imshow(image_blurry, cmap='gray')
plt.axis('off')
plt.show()
✅ 적응적 임계처리 적용
: 어떤 값보다 큰 값을 가진 픽셀을 흰색으로 만들고 작은 값을 가진 픽셀은 검은색으로 만드는 과정
max_output_value = 255
neighborhood_size = 99
subtract_from_mean = 10
image_binarized = cv2.adaptiveThreshold(image, max_output_value,
cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY,
neighborhood_size, subtract_from_mean)
plt.imshow(image_binarized, cmap="gray")
plt.axis("off")
plt.show()