앎을 경계하기

영상처리 8

3. 밝기 변환과 공간 필터링(1)

3.1 배경3.1.1 밝기 변환과 공간 필터링의 기초공간 도메인 기법들은 영상의 화소들에 직접 작용한다. 일반적으로 공간 도메인 기법들이 계산적으로 더 효율적이고 자원도 더 적게 사용한다.g(x,y)=T[f(x,y)]g(x,y) = T[f(x,y)]g(x,y)=T[f(x,y)]f(x,y)f(x,y)f(x,y)는 입력영상, g(x,y)g(x,y)g(x,y)는 출력영상, TTT는 fff에 대한 연산자이다. 위 그림은 이웃(공간 필터)를 통한 공간필터링이다. 가장 작은 필터의 크기는 1×1이다. 이러한 경우 g가 하나의 점 (x,y)에서의 f의 값에만 종속된다. T는 그레이 레벨의 변환 함수가 된다.s=T(r)s=T(r)s=T(r)Contrast Strectching s, r은 각각 점(x,y)에서의 g와 f..

1. Intro(1)

1.1 디지털 영상 처리란?영상은 2차원 함수f(x, y)로 정의될 수 있으며, x와 y는 공간 좌표이고 좌표 쌍(x,y)에서 f의 진폭을 영상의 밝기 또는 그레이 레벨이라고 한다.x, y, f의 밝기 값이 모두 유한하며 이산적으로 표현되는 영상을 디지털 영상이라고 한다.디지털 영상은 유한한 수의 요소들로 구성된다. 요소는 특정 위치와 값을 갖는다. 이 요소를 pixel, 화소라고 부른다.디지털 영상 처리가 포함하는 것입력과 출력이 영상인 프로세스영상으로부터 속성들을 추출하는 프로세스개별 객체 인식1.2 디지털 영상 처리 기원디지털 영상의 처음 응용 중 하나는 신문 산업이었으나 초기 디지털 영상에는 컴퓨터가 관련되어 있지 않기 때문에 정의상 디지털 영상 처리로 간주하지 않는다.컴퓨터의 진보Bell 연구소..

<DAFIT> 09 OpenCV 연습하기(1) - 01 Convolution Filter

0~1 사이의 값 : random 값 3x3 커널 : [[a,b,c],[d,e,f,],[g,h,i]] 이미지는 (256,256)으로 resizing하고 grayscale로 변환. * 필요한 라이브러리 임포트 import cv2 from google.colab.patches import cv2_imshow import numpy as np * 이미지 읽기 #cv2.filter2D #0~1 사이 값으로 구성된 3x3 커널을 생성한 뒤 이미지에 적용한 두 이미지를 동시에 출력해보자. #이미지에 적용전 높이 너비를 256,256이고 gray로 변환한다. img_path = '/content/drive/My Drive/다핏문제/909/lena.jpg' img = cv2.imread(img_path,2)..

<DAFIT> 07 OpenCV 다루기 첫걸음 - 05 영상 뒤집기

이번에는 flip을 해보는 문제이다. import cv2 from google.colab.patches import cv2_imshow import numpy as np img_path = '/content/drive/My Drive/다핏문제/907/lena.jpg' flip함수는 사용하는 게 굉장히 쉽다. 1이면 좌우반전, 0이면 상하반전을 한다. img = cv2.imread(img_path,1) print('origin') cv2_imshow(img) v_img = cv2.flip(img, 1) print('\n\nvertical flip') cv2_imshow(v_img) h_img = cv2.flip(img, 0) print('\n\nhorizontal flip') cv2_imshow..

<DAFIT> 07 OpenCV 다루기 첫걸음 - 04 영상 회전

지난번 translation에 이어 이번에는 rotation을 해보는 문제이다. import cv2 import numpy as np from google.colab.patches import cv2_imshow img_path = '/content/drive/My Drive/다핏문제/907/lena.jpg' angle을 지정해서 cv2.getRotationMatrix2D()를 사용해서 이미지의 중심점, 회전할 각도, 이미지크기(scale)을 넣어서 matrix를 구성해서 warpAffine에 넣어주면 된다. img = cv2.imread(img_path,1) rows, cols = img.shape[:2] angle = 90.0 M = cv2.getRotationMatrix2D((cols/2..

<DAFIT> 07 OpenCV 다루기 첫걸음 - 03 영상 이동

사진을 이동시켜보는 문제이다. import cv2 import numpy as np from google.colab.patches import cv2_imshow img_path = '/content/drive/My Drive/다핏문제/907/lena.jpg' x축으로 50 ( 1, 0, 50 ), y축으로 50 ( 0, 1, 50 ) 이동해보자. img = cv2.imread(img_path,1) rows, cols = img.shape[:2] M = np.float32([[1,0,50],[0,1,50]]) img_result = cv2.warpAffine(img, M, (cols, rows)) cv2_imshow(img_result) 굉장히 쉽게 성공했다! http://www.dafit.m..

<DAFIT> 07 OpenCV 다루기 첫걸음 - 02 영상 읽기, 출력, 저장

이번에는 이미지의 채널을 변환하고 분리하고 병합하는 것이다. import cv2 as cv from google.colab.patches import cv2_imshow img_path = '/content/drive/My Drive/다핏문제/907/lena.jpg' * 채널 변환 # OpenCV의 삼원색 기본 순서는 BGR이다. img_bgr = cv.imread(img_path,1) img_rgb = cv.cvtColor(img_rgb, cv.COLOR_BGR2RGB) cv2_imshow(img_bgr) cv2_imshow(img_rgb) * 채널 분리 및 병합 b,g,r = cv.split(img_bgr) img_rbg = cv.merge((r,b,g)) cv2_imshow(img_rbg..

<DAFIT> 07 OpenCV 다루기 첫걸음 - 01 영상 읽기, 출력, 저장

이번 OpenCV 문제들은 lena 사진을 가지고 문제를 진행한다. 레나 이미지는 영상처리를 접해본 적 있다면 한번쯤 어디선가 다 봤을 것 같다. 코랩에서 진행해서 imshow()를 사용하려면 아래 import 과정이 필요하다. import cv2 as cv from google.colab.patches import cv2_imshow img_path = '/content/drive/My Drive/다핏문제/907/DF907_01_01.jpg' #3채널로 이미지 읽기 img3 = cv.imread(img_path, flags=1) imread(이미지 경로, flags=-1,0,1 또는 enum constant) 1 = color 0 = grayscale -1 = alpha 채널 포함 열거형 상..