목록Deep Learning (51)
Note
하나의 이미지에 다수의 조명 상태가 존재하는 경우 적용하면 좋다. 전체 픽셀을 기준으로 임계 값을 적용하지 않는다. cv2.adaptiveThreshold(image, max_value, adaptive_method, type, block_size, C) max_value : 임계 값을 넘었을 때 적용할 값 adaptive_method : 임계 값을 결정하는 계산 방법 - ADAPTIVE_THRESH_MEAN_C : 주변 영역의 평균 값으로 결정 - ADAPTIVE_THRESH_GAUSSIAN_C type : 임계점을 처리하는 방식 block_size : 임계 값을 적용할 영역의 크기 C : 평균이나 가중 평균에서 차감할 값 import cv2 image = cv2.imread('hand_writing_..
cv2.threshold(image,thresh,max_value,type) : 임계값을 기준으로 흑/백으로 분류하는 함수 (이진화 수행) image : 처리할 Gray Scale 이미지 thresh : 임계 값 (전체 픽셀 적용) max_value : 임계 값을 넘었을 때 적용할 값 type : 임계점을 처리하는 방식 - THRESH_BINARY : 임계 값보다 크면 max_value, 작으면 0 - THRESH_BINARY_INV : 임계 값보다 작으면 max_value, 크면 0 - THRESH_TRUNC : 임계 값보다 크면 임계 값, 작으면 그대로 - THRESH_TOZERO : 임계 값보다 크면 그대로, 작으면 0 - THRESH_TOZERO_INV : 임계 값보다 크면 0, 작으면 그대로 i..
cv2.add() - Saturation 연산을 수행 - 0 보다 작으면 0, 255 보다 크면 255로 표현 np.add() - Modulo(나머지) 연산을 수행 - 256은 0, 257은 1로 표현 - 잘 사용하지 않음, 특정 픽셀에서 이미지가 이상해지기 때문 이미지 배열의 크기가 같아야 한다. import cv2 import matplotlib.pyplot as plt image_1 = cv2.imread('test.jpg') image_2 = cv2.imread('test3.jpg') result = cv2.add(image_1,image_2) plt.imshow(cv2.cvtColor(result, cv2.COLOR_BGR2RGB)) plt.show() result = image_1 + imag..
무게 중심을 적용한 변환 행렬을 사용한다 cv2.getRotationMatrix2D(center, angle, scale) - 이미지 회전을 위한 변환 행렬 생성 함수 center : 회전 중심 angle : 회전 각도 scale : Scale Factor import cv2 import matplotlib.pyplot as plt import numpy as np image = cv2.imread('test.jpg') # 행과 열 정보만 저장 height, width = image.shape[:2] M = cv2.getRotationMatrix2D((width / 2, height / 2), 90, 0.5) dst = cv2.warpAffine(image, M, (width, height)) plt.i..
이미지 위치 변경 cv2.wrapAffine(image, M, dsize) M : 변환 행렬 = (2*3) 행렬 dsize : Manual Size import cv2 import matplotlib.pyplot as plt import numpy as np image = cv2.imread('test.jpg') # 행과 열 정보만 저장 height, width = image.shape[:2] # 변환 행렬, 변환 행렬에 따라 위치가 바뀐다 M = np.float32([[1, 0, 50], [0, 1, 10]]) dst = cv2.warpAffine(image, M, (width, height)) plt.imshow(cv2.cvtColor(dst, cv2.COLOR_BGR2RGB)) plt.show()