분류 전체보기 428

[27] 5.기하학적 변환 1)영상의 이동 변환과 전단 변환

영상의 기하학적 변환(geometric transformation) 이란? 영상을 구성하는 픽셀의 배치 구조를 변경함으로써 전체 영상의 모양을 바꾸는 작업 image registration, removal of geometric distortion 이동 변환 (Translation transformation) 가로 또는 세로 방향으로 영상을 특정 크기만큼 이동시키는 변환 x축과 y축 방향으로의 이동 변위를 지정 영상의 어파인 변환 함수 cv2.warpAffine(src,M,dsize,dst=None,flags=None,borderMode=None,borderValue=None) -> dst • src: 입력 영상 • M: 2x3 어파인 변환 행렬 . 실수형 • dsize : 결과 영상 크기 . (w, h..

[26] 6) 잡음제거 - 양방향 필터

가우시안 잡음 제거에는 가우시안 필터가 효과적 양방향 필터 (Bilateral filter) 에지 보전 잡음 제거 필터 (edge-preserving noise removal filter) 의 하나 평균 값 필터 또는 가우시안 필터는 에지 부근에서도 픽셀 값을 평탄하게 만드는 단점이 있음 기준 픽셀과 아웃 픽셀과의 거리, 그리고 픽셀 값의 차이를 함께 고려하여 블러링 정도를 조절 양방향 필터링 함수 cv2.bilateralFilter(src,d,sigmaColor,sigmaSpace,dst=None,borderType=None) -> dst • src : 입력 영상 . 8 비트 또는 실수형 , 1 채널 또는 3 채널 • d: 필터링에 사용될 이웃 픽셀의 거리 (지름). 음수 (-1) 를 입력하면 sigm..

[25] 5) 잡음제거 - 미디언 필터

영상의 잡음(Noise) 영상의 픽셀 값에 추가되는 원치 않는 형태의 신호 잡음의 종류 가우시안 잡음(Gaussian noise) 소금 & 후추 (Salt & pepper) 잡음제거 - 미디언 필터(Median filter) 주변 픽셀들의 값들을 정렬하여 그 중앙값(median)으로 픽셀 값을 대체 소금 - 후추 잡음 제거에 효과적 미디언 필터링 함수 cv2.medianBlur(src,ksize,dst=None) -> dst • src : 입력 영상 . 각 채널 별로 처리됨 • ksize : 커널 크기 . 1 보다 큰 홀수를 지정 . • dst : 출력 영상 . src 와 같은 크기 , 같은 타입 미디언 필터링 예제 import sys import numpy as np import cv2 src = cv..

[24] 4)샤프닝: 언샤프 마스크 필터

언샤프 마스크(Unsharp mask) 필터링 날카롭지 않은(unshape) 영상, 즉, 부드러워진 영상을 이용하여 날카로운 영상을 생성 언샤프 마스크 필터 구현하기 import sys import numpy as np import cv2 src = cv2.imread('rose.bmp', cv2.IMREAD_GRAYSCALE) if src is None: print('Image load failed!') sys.exit() blr=cv2.GaussianBlur(src,(0,0),3) dst=np.clip(2.*src-blr,0,255).astype(np.uint8) # dst=cv2.addWeighted(src,2,blr,-1,0) cv2.imshow('src',src) cv2.imshow('dst',..

[23] 3)블러링 - 가우시안 필터

평균값 필터에 의한 블러링의 단점 필터링 대상 위치에서 가까이 있는 픽셀과 멀리 있는 픽셀이 모두 같은 가중치를 사용하여 평균을 계산 멀리 있는 픽셀의 영향을 많이 받을 수 있음 (1차원) 가우시안 함수 (Gaussian function) 가우시안 함수의 특징 가우시안 필터링 함수 cv2.GaussianBlur(src,ksize,sigmaX,dst=None,sigmaY=None,borderType=None) -> dst • src : 입력 영상 . 각 채널 별로 처리됨 • dst : 출력 영상 . src 와 같은 크기 , 같은 타입 • ksize : 가우시안 커널 크기 . (0,0) 을 지정하면 sigma 값에 의해 자동 결정됨 • sigmaX : x 방향 sigma. • sigmaY : y 방향 sig..

[22] 2)블러링-평균값 필터

평균 값 필터 (Mean filter) 영상의 특정 좌표 값을 주변 픽셀 값들의 산술 평균으로 설정 픽셀들 간의 그레이스케일 값 변화가 줄어들어 날카로운 에지가 무뎌지고, 영상에 있는 잡음의 영향이 사라지는 효과 실제 영상에 평균 값 필터를 적용한 결과 filter2D() 함수를 이용한 평균값 필터링 예제 import sys import numpy as np import cv2 src=cv2.imread('rose.bmp',cv2.IMREAD_GRAYSCALE) if src is None: print('Image load failed!') sys.exit() # kernel=np.array([[1/9,1/9,1/9,],[1/9,1/9,1/9,],[1/9,1/9,1/9,]],dtype=np.float32)..

[21] 4.필터링 1)필터링 이해하기

영상의 필터링 (image filtering) 영상에서 필요한 정보만 통과시키고 원치 않는 정보는 걸러내는 작업 주파수 공간에서의 필터링 (Frequency domain filtering) 공간적인 필터링 (Spatial domain filtering) 영상의 픽셀 값을 직접 이용하는 필터링 방법 대상 좌표의 픽셀 값과 주변 픽셀 값을 동시에 사용 주로 마스크(mask) 연산을 이용함 (mask=커널(kernel)=window=template) 다양한 모양과 크기의 마스크 마스크의 형태와 값에 따라 필터의 역할이 결정됨 영상 부드럽게 만들기 영상 날카롭게 만들기 에지(edge) 검출 잡음 제거 3x3 크기의 마스크를 이용한 공간적 필터링 마스크에 대흥하는 입력영상을 각 픽셀마다 곱한뒤 모두 더한값을 출력..

reshape 함수

order array를 다음과 같이 reshape 할 수 있다. a=np.arrange(6).reshape((3,2)) >>>a array([[0,1],[2,3],[4,5]]) 다음과 같은 방법으로도 가능하다 a=np.array([[1,2,3],[4,5,6]]) np.reshape(a,6) #-->array([1,2,3,4,5,6]) -1의 의미 reshape()의 '-1' 이 의미하는 바는, 변경된 배열의 '-1' 위치의 차원은 "원래 길이와 남은 차원으로 부터 추정"이 된다는 뜻이다. import numpy as np x=np.arrange(12).reshape(3,4) x=array([[0,1,2,3],[4,5,6,7],[8,9,10,11]]) (1) reshape(-1,정수)의 행(row) 위치에..

python/numpy 2021.03.18

[20] 크로마키 합성

구현할 기능 파란색 폴더 영역 추출하기 파랑 영역에 다른 배경 영상을 합성하여 저장하기 스페이스바를 이용하여 크로마 키 합성 동작 제어하기 import cv2 import sys import numpy as np cap1=cv2.VideoCapture(0) if not cap1.isOpened(): print('video open failed!') sys.exit() cap2=cv2.VideoCapture('mountain.mp4') w=round(cap1.get(cv2.CAP_PROP_FRAME_WIDTH)) h=round(cap1.get(cv2.CAP_PROP_FRAME_HEIGHT)) frame_cnt1=round(cap1.get(cv2.CAP_PROP_FRAME_COUNT)) frame_cnt2=..

[19] 8)히스토그램 역투영

히스토그램 역투영 (Histogram backprojection) 영상의 각 픽셀이 주어진 히스토그램 모델에 얼마나 일치하는지를 검사하는 방법 임의의 색상 영역을 검출할 때 효과적 히스토그램 역투영 함수 cv2.calBackProjection(images,channels,hist,ranges,scale,dst=None) -> dst • images: 입력 영상 리스트 • channels: 역투영 계산에 사용할 채널 번호 리스트 • hist: 입력 히스토그램 (numpy.ndarray) • ranges: 히스토그램 각 차원의 최솟값과 최댓값으로 구성된 리스트 • scale: 출력 역투영 행렬에 추가적으로 곱할 값 • dst 출력 역투영 영상 . 입력 영상과 동일 크기 , cv2.CV_8U import sy..