분류 전체보기(217)
-
최대공약수(GCD) for Python
배열을 사용합니다. 간단하게 숫자 두 개를 입력해서 최대공약수를 찾습니다. #STEP 1 배열에 숫자를 추가하고 max, min함수를 사용해서 배열에서 가장 큰 수와 가장 작은 수를 찾아 변수에 넣습니다. numarr = [] numarr.append(int(input("첫 번째 숫자를 입력하세요."))) numarr.append(int(input("두 번째 숫자를 입력하세요."))) a = max(numarr) b = min(numarr) #STEP2 변수 R에 a 를 b로 나눈 나머지를 넣습니다. R = a % b #STEP 3 위에서 구한 R변수를 사용해서 R이 0이면 최대공약수 그렇지 않으면 a = b , b = R으로 변수 값을 바꿔주고 R이 0이 될 때까지 반복합니다. if (R != 0): ..
2019.07.09 -
Basic GrayScale for Python
파이썬으로 영상을 그레이 색상으로 바꾸는 효과를 줘봅시다. 다운로드한 사진, 동영상을 사용할 수도 있지만 웹캠을 사용하는 코드를 사용했습니다. 코드는 간단합니다. import numpy as np import cv2 cap = cv2.VideoCapture(0) # 0번 카메라 (웹캠) while True: ret, frame = cap.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) #BGR 컬러를 GRAY로 변환 cv2.imshow('frame',frame) #원본 영상 보여주기 cv2.imshow('gray',gray) #그레이 색상으로 변경된 영상 보여주기 key = cv2.waitKey(25) if key == 27: # Esc break cv2...
2019.07.09 -
1차미분, 2차미분 에지검출
미분 식은 간단하게 풀 수 있습니다. x는 기준이 되는 값 x - 1은 기준값 한 칸 전의 값 x + 1은 기준값 한칸 이후의 값 예를 들어 2차 미분의 왼쪽에서 2번째 값을 기준으로 하면 공식에 대입한 값 4 + 5 - (2 * 5) = -1 2차 미분에서 에지는 음수에서 +로 바뀌는 부분 Sobel 연산 = 1차 미분 Sobel연산은 영상에서 에지를 추출하는데 대표적으로 사용되는 연산입니다. 그리고 밝기 변화율(기울기)을 검출하기 위해 사용하며 돌출한 화소 값을 비교적 평균화시켜주기 때문에 노이즈에 대체적으로 강한 특성을 가집니다. 위 그림과 같이 Sobel 필터는 y축을 기준으로 x만 변화시키는 Gx(수직 필터), x축을 기준으로 y만 변화시키는 Gy(수평 필터)로 나누어져 있습니다. 필터의 크기를..
2019.07.04 -
가우시안 블러링
가우시안 블러링은 원본 이미지의 잡음(salt & paper) 제거를 위해 사용됩니다. 가우시안 블러링을 위해서 저역통과 필터(LPF, Low pass filter)를 사용합니다. 그래프로 필터의 단면을 보면 위 그림과 같습니다. 필터는 아래 그림과 같습니다. 위 그림가 같이 가우시안 필터의 크기를 조절할 수 있습니다. 값이 커질수록 선명해집니다. 필터 적용방법은 위 그림과 같이 가우시안 필터 + 원본 이미지의 스펙트럼 = 필터 적용된 이미지 가우시안 필터의 활용
2019.07.04 -
상관연산, 컨볼루션연산
합성곱 연산 영상처리에서 필터를 적용하기 위해 합성곱 연산 방법을 사용합니다. 합성곱 연산 방법은 아래 그림과 같습니다. (픽셀 선택 후 픽셀 범위만큼 원본 이미지와 곱하고 모두 더한 값을 픽셀에 넣어줍니다.) 상관 연산, 컨볼루션 연산 상관 연산(Correlation) 연산은 필터를 있는 그대로 합성곱 연산합니다. 컨볼루션(Convlution) 연산은 필터를 180도 돌린 후 합성곱 연산합니다. 아래 그림으로 두 연산의 차이를 확인할 수 있습니다. 필터 적용 시 문제점 필터를 영상에 적용시킬 때 영상의 테두리에서는 필터의 일부가 원본과 대응되지 않는 문제점이 있습니다. (아래 그림과 같이 필터가 원본 영역을 벗어나는 문제) 문제를 해결하기 위해 영상의 크기를 넓혀줍니다. 이 방법을 패딩이라고 하는데 벗..
2019.07.04 -
Thresholding
Thresholding 이란?Thresholding은 영상의 이진화라고도 불리며 어떤 경계값을 기준으로 낮은 값을 가지는 픽셀은 검은색(0)으로높은 값을 가지는 픽셀은 흰색(255)으로 만드는 과정을 말한다.색을 성명하기위해 0과 255라고 했는데 같은 말이지만 이진화이기 때문에 0과 1로 나눠진다.이진화를 거친 영상은 영상이 뚜렷해지고 영상파일의 크기도 작아진다. 위 그림은 이진화가 잘못된 예를 보여준다.왼쪽 그림은 설정 값이 너무 낮고 오른쪽 그림은 설정값이 너무 높아서 제대로 이진화가 되지 않았다.기준이 되는 T값(설정 값)은 아래와 같이 계산. 1. T에 대한 초기 추정값을 선택 (일반적으로 이미지의 평균 회색조 레벨) 2. T를 사용하여 이미지를 세분화하여 두 개의 픽셀 그룹을 생성합니다. G1..
2019.06.28