2024.02.19
이미지 처리하기 : cv2
이미지 불러와서 출력하기
import matplotlib.pyplot as plt
%matplotlib inline
import matplotlib.cm as cm
import numpy as np
import cv2
import os
img_path = "/content/sohn.jpg"
image = cv2.imread(img_path)
print(image.shape)
plt.imshow(image)
# colab은 RGB가 아니라 BGR을 사용하기 때문에 순서 변경
imgRGB = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
plt.imshow(imgRGB)
# colab에서 이미지 출력을 위해 cv2.imshow 함수 대신 cv2_imshow 사용
from google.colab.patches import cv2_imshow
cv2_imshow(img)
img = cv2.imread(img_path)
print(img.shape)
cv2_imshow(img)
분리된 이미지 확인, 분리하기, 병합하기
# RGB로 분리된 이미지에서 0번 채널 가져오기
cv2_imshow( imgRGB[:,:,0])
# 인덱스 활용하지 않고 한번에 가져오기
r,g,b = cv2.split(imgRGB)
print(cv2_imshow(r))
print(cv2_imshow(g))
print(cv2_imshow(b))
# 분리된 이미지를 하나로 합치기
temp = cv2.merge([b,g,r]) # 구글에서는 bgr 순서
cv2_imshow(temp)
흑백으로 변환하기
g = cv2.cvtColor(imgRGB, cv2.COLOR_RGB2GRAY)
# 결과 비교(흑백과 컬러의 채널 비교)
print("Org RGB: ",imgRGB.shape)
print("Gray: ",g.shape)
cv2_imshow(g)
=> Org RGB: (1496, 2047, 3)
=> Gray: (1496, 2047)
간단한 이미지 변환 적용하기
: 옆으로 이미지 밀기, 이미지 돌리기, 해상도 뭉개기
# 옆으로 이미지 밀기
tx = 600
ty = 800
translation_matrix = np.float32([[1, 0, tx], [0, 1, ty]])
translated_image = cv2.warpAffine(imgRGB, translation_matrix, (image.shape[1], image.shape[0]))
plt.imshow(translated_image)
#--------------------------------------------
# 이미지 돌리기
angle = 45
height, width = imgRGB.shape[:2]
center = (width // 2, height // 2)
rotation_matrix = cv2.getRotationMatrix2D(center, angle, 1.0)
rotated_image = cv2.warpAffine(imgRGB, rotation_matrix, (width, height))
plt.imshow(rotated_image)
#--------------------------------------------
# 해상도 뭉개기
scale_width = 0.05
scale_height = 0.05
new_width = int(imgRGB.shape[1] * scale_width)
new_height = int(imgRGB.shape[0] * scale_height)
scaled_image = cv2.resize(imgRGB, (new_width, new_height))
plt.imshow(scaled_image)
Inception Net
- CNN → VGG(2014) → GoogleNet (= Inception Net) → ResNet
- 구글넷이라고도 불리며 모델에 대한 이름이나 용어가 혼용되어 사용된다.
- 현재 기준으로 v4까지 나와있다.
- 전형적인 Conv구조를 탈피하여 네트워크 모듈을 쌓는 방식의 네트워크 속 네트워크의 구조 방식으로 설계했다.
- 전체 파라미터의 수가 ILSVRC 2012에서 압도적으로 우승을 한 AlexNet 대비 파라미터의 수는 10배 이상 적고, 깊은 신경망을 구성할 수 있는 효율적인 구조이다.
'ASAC 빅데이터전문가과정 > DL' 카테고리의 다른 글
ASAC 56일차_딥러닝 10일차 (5) | 2024.09.05 |
---|---|
ASAC 55일차_딥러닝 9일차 (0) | 2024.09.04 |
ASAC 52일차_딥러닝 7일차 (0) | 2024.09.02 |
ASAC 51일차_딥러닝 6일차 (0) | 2024.09.02 |
ASAC 50일차_딥러닝 5일차 (0) | 2024.09.02 |