본문 바로가기
Study (Data Science)/ML

이미지처리 Basic

by 콜라찡 2022. 12. 12.

영상처리

사용목적에 따라 적절히 처리하여 개선된 영상을 생성하는것

노이즈제거, 대비(contrast)개선, 관심영역(region of interest)강조,영역분할(segmentation), 압축 및 저장 

  • 저수준 : 영상 획득, 향상, 복원 ,변환처리, 압축
  • 고수준 (Computer Vision) : 영상 분할, 표현, 인식

Color Space : 색을 표현하는 다양한 방식. 색 공간

Channel : 각 컬러스페이스를 구성하는 단일 축

이미지 저장방식

  • raster, bitmap : 각 점 하나하나의 색상 값을 저장하는 방식. (r, g, b) (255,255,255). 확대시 깨짐
  • vector : 상대적인 점의 선의 위치를 방적식으로 기록 후 확대 및 축소할 때 각 픽셀의 값을 재계산하여 깨짐이 없음.
  • 그 외 : YUV, HSV(Hue 색상, Saturation 채도, Value 명도), CMYK(Cyan, Magenta, Yellow, Black)

 

여러가지 확장자

  • JPEG :
    • 손실압축 (lossy compression) 사용
    • 원본 영상으로부터 픽셀값이 미세하게 달라짐
    • 파일 용량 크기가 크게 감소하는 점에서 장점
    • 디지털 카메라 
  • PNG :
    • Portable Network Graphics
    • 스샷에 많이 사용됨
    • 용량은 큰 편이나 픽셀값이 변경되지 않음
    • 알파 채널을 지원하여 일부분 투명하게 설정 가능
    • 이미지에 사용된 색상을 미리 정의해두고 그를 참조하는 팔레트 방식을 사용할 수 있기에, 사용된 색상이 적은 단순한 이미지의 경우 동일한 해상도의 JPEG 파일보다도 용량이 작을 수 있음. But, 사진과 같이 이미지에 사용된 색상이 많아지면 JPEG 파일보다 용량이 더 많아짐.
  • GIF 
    • 움짤에 많이 사용.
    • 무손실 압축 (losses compression)
    • 움직이는 그림 animation 지원
    • 256이하의 색상을 가진 영상만 저장하는 팔레트 방식으로 제한적
    • 화질이 매우 떨어짐 

기본이미지 다루기

  •  이미지 생성 / 열기 / W,H 출력하기 / 확장자 바꾸기 / 사이즈 바꾸기 / 잘라내기
import numpy as np
from PIL import Image

# 이미지 생성
data = np.zeros([32, 32, 3], dtype=np.uint8)
data[:, :] = [255, 0, 0]
image = Image.fromarray(data, 'RGB')
image

# 이미지 열기
image_path = 'node13/pillow_practice.png'
img = Image.open(image_path)
img

# width와 height 출력
print(img.width)
print(img.height)

# JPG 파일 형식으로 저장해보기
new_image_path = 'node13/jpg_pillow_practice.png'
img = img.convert('RGB')
img.save(new_image_path)

# 이미지 사이즈 변경하기 (620, 425) >> (100(W), 200(H))
resized_image = img.resize((100,200))
resized_image_path = 'node13/pillow_practice_resized.png'
resized_image.save(resized_image_path)
resized_image

# 이미지 자르기 눈부분만 : 눈부분 box 좌표 (300, 100, 600, 400)
cropped_image = img.crop((300, 100, 600, 400))
cropped_image_path = 'node13/pillow_practice_cropped.png'
cropped_image.save(cropped_image_path)
cropped_image

 

 

 

728x90

댓글