본문 바로가기

📜✏️노트 자리없어서 적는 IT 지식📜✏️

컴퓨터 비전(computer vision) - 4주차 셤 공부

컴퓨터 비전

 

영상파일 처리 한글이나 공백에 의한 경로 인식 문제 주의!

 

: 영상파일을 읽어 들여 행렬에 저장하고, 행렬 연산 과정에서 행렬의 원소, 즉 화소값들이 표시된 영상을 필요할 때마다 눈으로 직접 확인할 수 있어야 함.

 

 

cv2.imread(filename[, flags]) -> retval < 읽어들이는 함수 >

<지정한 영상파일로부터 영상을 적재한 후, 행렬로 반환함>

 

 

imread - read 읽어들이는 함수..

 

 

filename - 적재할 영상파일 이름

flags - 적재한 영상을 행렬로 반환될 때 컬러 타입을 결정하는 상수

 

 

cv2.imwrite(filename, img [,params]) -> retval

 

img - 행렬을 지정한 영상파일로 저장함

filename - 적재할 영상파일 이름, 확장명에 따라 영상파일 형식 결정

img - 저장하고자 하는 행렬

params - 압축 방식에 사용되는 인수 쌍

 

 

영상파일 저장하기.

영상파일 저장에 cv2.imwirte()함수 사용

 

확장자 지정 안하면 오류가 발생함! (JPG, BMP, TIF 등등)

 

 

cv2.IMWRITE_JPEG_QUALITY

: JPEG 화질 설정

: paramValue기본값 (0~255)

 

 

관심 영역(ROI, Region Of Interest) << 중요!

 

- 이미지에 어떤 연산을 적용해서 새로운 이미지나 정보를 얻어내려고 할 때

전체 이미지를 대상으로 하는 것보다 관심이 있는 부분만 잘라내서 하는 것이 훨씬 효과적

 

- 연산과 분석의 대상이 되는 영역만을 지정하고 떼어 내는 것을 관심영역(ROI)을 지정한다고 함.

 

 

ROI 내용

 

 

관심영역은 selectROI()함수로 사용할 이미지를 마우스로 선택하고

엔터키를하면 선택한 영역을 창으로 보여준다.

 

이미지 영역을 정하고 imwirte()함수로 선택한 영역의 이미지를 가져옴.

 

 

 

관심채널

-이미지 상에서 관심 있는 채널을 의미함.

(특정 영역을 불러와 연산ㄹ량의 감소와 정확도를 향상시키는데 사용함)

 

 

히스토그램

도수 분포표 중 하나로 데이터의 분포를 몇 개의 구간으로 나누고 각 구간에 속하는

데이터를 시각적으로 표현한 막대그래프

:: 쉽게 이미지 특성 파악 가능해서.

 

 

 

------------------2주차-----------------------

 

비디오 처리

 

비디오 파일의 용량이 다양한 이유? 압축 코덱 때문에

 

코덱은 압축하고 압축 해제하는 방법이다.

 

cv2.VideoCapture 버전에 따라 함수 형식이 다름

 

cv2.VideoWriter 버전에 따라 함수 형식이 다름

 

개방 여부를 확인하는 함수?

cv2.VideoWriter.isOpened() -> retval

isopened.

 

 

-------------3주차------------------

 

matplotlib 패키지 << 중요

-파이썬에서 데이터를 차트나 그래프로 그려주는 라이브러리, 이 라이브러리에 있는 pyplot 모듈은 매트랩의 수치해석 소프트웨어의 시각화 명령을 거의 그대로 사용할 수 있음

 

 

 

중요 함수들 -------------....

 

matplotlib.pyplot.imshow 데이터 X를 그래프에 영상으로 보여줌.

 

**kwargs : 라인 속성을 각 인수 별로 지정해서 넘김

 

fmt 문자열 ‘ clolor,marker,line’ 에 따라서 만들어짐

 

subplot(*args, **kwargs) -> matplotlib.axes.SubplotBase

현재 그림에서 서브 플롯을 추가함

*args , , 순번 지정

 

pyplot.title

서브 플롯의 제목을 지정함

label 그림제목 등등..

 

pyplot.suptitle

메인 그림의 제목을 지정함.

 

 

화면의 영상을 표시하거나 여백을 줄여서 표시하는 방법이 있는데 그때 사용하는 함수

tight_layout함수

 

 

플롯의 축 정보를 조정하거나 가져올수 있는 함수는?

ptplot.axis(*args, **kwargs)

 

 

그림 객체를 윈도우에 띄움

show

 

그림 객체와 서브 플롯들을 생성함

subplots

 

영상 파일로 저장하기

savefig

 

<< 영어를 해석하면 대부분 함수의 기능과 같다

 

 

plot()

- 그래프를 그리는 가장 간단한 방법

- 일반적으로 plt 라는 별명으로 임포트하여 사용.

 

 

r-- : 빨간색 이음선

g. : 초록색 점

bv : 파란색 역삼각형

ks : 검은색 사각형

 

 

 

 

 

subplot

: 여러개의 그래프를 그릴수 있다.

 

그래프 그릴 때 매우 유용하다!!

 

plt.plot() 대신에 plt.imshow()함수를 호출하면 OpenCV로 읽어 들인 이미지를 그래프 영역에 출력할 수 있음.

 

img[:,:,:: -1] # 이미지 컬러 채널 변경해서 표시

 

3차원 배열의 모든 내용을 선택하는 것은 img[:,:,:]인데 마지막 축의

 

 

cvtColor(src, code , dts, dstCn) -> dst

: 색공간 변환함수.

 

 

 

보간법 : 영상을 확대할 때 비는 부분을 채우는 방법.