영상처리의 기본~ 이미지 가공
Computer Science/영상처리 + FACE-ID project

영상처리의 기본~ 이미지 가공

-> Anaconda를 사용, ComputerVision이라는 가상환경 만들어서 실행하고 있는 상태임!

-> Incognito project 의 시작...ㅎㅎ

-> 사용한 이미지: 인프런 강좌에서 인용함!! 

 

1. 비트맵/ 벡터 이미지

1) 비트맵 (래스터 이미지)

 : 그림을 하나하나 셀 단위로 나누어서 채도별로 각각 matrix(표) 에 정보를 저장한다.

 픽셀 단위로 색깔을 저장하고, 이 픽셀이 많아질수록 더 정교하고 실물에 가깝게 사진을 저장할 수 있다. 그렇지만 그림을 확대하면 깨질 가능성이 있다.

2) 벡터 방식

  : 벡터 방식으로 이미지를 저장하면 이미지 자체 의 선과 곡선을 어떻게 그리는지(벡터) 에 대한 정보를 갖고 있기 때문에 확대해도 깨지지 않는다.

 

: 이와 같이 그림 자체를 어떻게 그리는지에 대하는 명령과 정보를 갖고있게 된다. 따라서 그림을 언제나 선명하게 그릴수 있게 된다.

 

-> 이미지를 모노톤으로 처리하는 실습을 해보았다. 

+) destroyAllwindows, waitkey 누르면 창이 다 사라진다.

 jupyternotebook- 기본적인 가상환경에서 실행이 된다.  따라서 앞서 만든 가상환경과 독립적으로 실행이 된다.

( 앞으로 사용한 예제는 ComputerVision에서 실행할 예정임.)

 

2. 이미지 픽셀 좌표체계

  -> 기본적으로 opencv에서는 비트맵 이미지를 처리하게 된다.

   : 좌표 위치를 찾아가면서 바꿔주거나 조작이 가능하다. r,g,b 컬러를 사용하게 된다. 

-> 참고로 반드시 이미지가 저장되어있는 공간에 파이썬 파일을 실행해줘야 정상적으로 처리된다.

높이, 너비, rgb channel 개수가 정상적으로 출력이 된다.

 

 -> 여기에 cv2.imshow("파일이름")을 추가하면 png 파일이 뜬다.

 

3. 이미지에 그리기

 

-> 이미지에 영역을 하나 정해서 위에 도형을 그릴수도 있고, 픽셀을 추출해서 rgb의 구성요소를 출력할수 있다.

+) img[50:100,50:100]=(0,0,255) -> 가로 50~100, 세로 50~100픽셀까지 추출해주는 것.

 

 

circle 함수(중심점, 반지름, 색깔, 전체 다 채움)

-> 함수를 이용해 rectangle,circle,line 등의 도형도 그릴 수 있다.

 

 

 

 

 

 

4. 이미지 변형하기

  +) do not add any korean annotation at spyder.. ur program might not run properly..:(

-> 그림 좌표를 옮기는등 변형하여 출력이 가능하다. 부호에 따라 상/하/좌/우로 이동 가능.

 

 

      -> rotate하여 출력도 가능하다.

 

-> 크기를 resizing할 수도 있다.

 

-> 이미지 뒤집기는 flip 함수 사용

 

 

5) 이미지 마스킹

: 이미지를 일정한 영역을 정해서 마스킹을 해줄 수 있다.

 

 

-> 마스크를 만들고, 이미지와 마스크의 공통적인 부분을 추출해서 출력해낼 수 있다, (이를 응용하여 얼굴에 마스크를 씌우는 방식인둡!!

원래 이미지에 bitwise and를 이용해 마스크 합성

 

 

 

6) 이미지 채널 조작 

  : 채널을 조작하고 관리하는 것에 대한 내용

-> 디지털에서 r,g,b등의 색깔 채널을 나타내는 부분. 이 채널을 잘 결합해서 총천연색의 색을 만들어 내는 것이다.

 

 

이미지에서 색깔 채널을 분리해 해당하는 부분만 하얗게강조되게 할 수 있다. 상관없는 부분은 까맣게 출력됨.
색깔 채널이 잘 구별이 안됨.

 

-> Gray scale로 그림이 출력되면 R,G,B 채널의 구별이 쉽지 않다.

   이를 구분하기 위해서 나머지 색깔을 아예 지워버리는 방법을 도입할 수 있다.

 

zeros 변수를 집어넣어서 자기 채널 아니면 다 0으로 만들기.

=> 색깔별로 분리된 이미지가 나타나는 것을 확인 할 수 있다.

 

 

 

-> 몇가지 사진 필터를 적용할 수 있다.

hsv,lab,graytone 필터들을 적용할수 있다!

 

=> merge 함수를 통해 모든 색깔을 병합해서 고유의 이미지를 그대로 출력할 수 있다.

 

'Computer Science > 영상처리 + FACE-ID project' 카테고리의 다른 글

DNN 모듈 집중 분석  (3) 2020.04.30
Haar module detection  (0) 2020.04.07