OpenCV 와 Pillow의 기초 배우기

매일 공부(ML)·2021년 9월 29일
0

CS 

목록 보기
1/33

링크텍스트# 약간의 정의

디지털 이미지

-화소(pixel): 색상을 가진 점 하나
-RGB:화소는 세 개의 단일 색의 강도 조절로 표현

이미지 저장 방법

<각 점 하나하나의 색상 값 저장>
-한 점마다 각 색상별로 8비트 사용

  • 래스터(raster) - 사진 파일이 주로 쓰임

  • 비트맵(bitmap)

    <벡터(Vector)방식>
    -상대적인 점과 선의 위치를 방정식으로 기록 후
    확대 및 축소에 따라 재계산 하므로 깨짐X
    -글꼴에 자주 쓰임

색상 표현 방식(컬러스페이스)

-채널: 각 컬러 스페이스를 구성하는 단일축

<종류>
-YUV방식: 1/4의 해상도를 가진 두 색상 채널 덧붙여 송출

-HSV:색감을 수치적으로 조작(색상,채도,명도)

-CMYK:인쇄 매체에서 주로 쓰이는 걸로 색의 강도를 높일수록 어두워지고 잉크 낭비로 인해 4가지 색상 사용

이미지 저장 파일

-JPEG:대표적인 이미지 파일로 화소들을 묶어서이미지압축
단점: 색상 정보 손실이 일어나 압축률을 높이거나 재압축을 해야하는 디지털 풍화를 일으킴

-PNG: 색상의 손실 없이 이미지를 압축하고 사용된 색상을 미리 정의해두는 팔레트 방식을 사용하여 색상이 적은 단순한 이미지의 경우에 사용되고 스크린샷에 주로 사용됨.

-GIF: 주로 움짤 형식의 이미지로 이미지 내에 프레임을 걸어서 사용되고 색상 정보 손실은 없지만 색상의 개수(256개)가 제한적으로 팔레트 방식도 제한적 사용

Pillow 사용법

:이미지 처리를 했던 PIL라이브러리 계보를 이은 도구
:이미지는 배열형태이다.
1)Numpy와 PIL import하기
2)파일경로 설정
3).open메소드()이미지 열기
4) 출력하고 싶은 거 설정
4-1) resize()를 이용해 이미지 크기 변경
4-2)crop()를 이용해 부분만 잘라서 저장
5) JPG파일 형식 저장

OpenCV

-특정 부분 이미지 추출 가능하다
-BGR에서 HSV로 변환 시 가능(* BGR =RGB)
-HSV에서 색상:110~130/ 채도 와 명도 : 50~255/파란색 정의

OpenCV사용법

1) cv2와 numpy import하기
2)파일 경로 설정 및 imread함수 호출
3)Covert BGR to HSV
4)define range of blue color in HSV
5)Threshold the HSV image to get only blue colors
6)Bitwise-AND mask and original image

용어 정리

PIL.Image.formarray()를 통해 이미지 객체로 변환 후 화면 표시
train[b'data']: data는 numpy배열
train[b'filenames']): list유형
Numpy-reshape : 이미지 파일 원본 복구
order='F': 아펀 차원부터 데이터 채우기
np.swapaxes(0,1) : X축과 Y축 뒤집기
imread():파일로부터 이미지를 읽어와 반환
cvtColor:컬러 스페이스 변환 함수
mask :우리가 원하는 부분만 떼어낼 수 있도록 하는 역할(파란색영역만고름)
rse: mask 적용한 결과
cv.inRange(): 해당 픽셀 1 그렇지 않은 건 0 으로 배열 반환
cv.bitwise_and: AND비트 연산. 두 장 다 같은 이미지 넣어서 동일 이미지 나오게 함.dst가 주어지면 검정색 영역 위에 이미지 만들고 반환
cv.cvtColor(res,cv. COLOR_BGR2RGB)함수: cv이미지 객체의 컬러 변환
img-카메라에서 받아온 이미지
cv.imshow(res),PIL.Image.show(),plt.imshow()는 cv 이미지 띄우기
cv2.calcHist():히스토그램 만들어주는 함수
cv2.compareHist(): 히스토그램끼리의 유사성 계산
sys.argv:이밎 파일 경로 명령줄에서 입력

build_histogram_db() : 검색대상 이미지를 부르고 히스토그램화
search(): 유사도 계산 및 정렬에 필요
profile
성장을 도울 아카이빙 블로그

0개의 댓글