반응형

Program 135

[Open CV] 기하학적 변환 _ 영상의 이동 변환과 전단 변환

영상의 기하학적 변환 ( geometric transformation ) 이란? 영상을 구성하는 픽셀의 배치 구조를 변경함으로써 전체 영상의 모양을 바꾸는 작업 픽셀의 좌표가 변환되는 형태 Image registration, removal of geometric distortion, ect. 우리는 위의 affine 과 projective ( perspective ) 의 기하학적 변환만 알아본다. 일단 이동변환 ( Translation transformation )을 먼저 알아본다. - 가로 또는 세로 방향으로 영상을 특정 크기만큼 이동시키는 변환 - x축과 y축 방향으로의 이동 변위를 지정 아래와같이 표현할 수 있다. 그리고 위와같은 2행3렬의 행렬을 어파인 변환 행렬을 numpy ndarray 로 만..

Program/OPEN_CV 2022.05.22

[Open CV] 필터링 _ 실전 코딩 ( 카툰 필터 카메라 )

2022.05.21 금일은 카툰 필터카메라 실전코딩에 관한 강의였다. 금일은 노트북에 있는 웹캠을 통해 입력되는 영상을 실시간으로 카툰 필터링을 적용하는 기능을 실제로 코딩해보는 시간이다. 총 3가지의 기능을 구현한다. - 카툰 필터 - 스케치 필터 - 스페이스바를 누를때마다 모드 변경 - 카툰 필터 입력 영상의 색상을 단순화시키고, 에지 부분을 검정색으로 강조하면 카툰처럼 변환이 된다. 이론상 이전에 배웠던 필터들을 사용하면 쉽게 구현할 수 있다. cv2.bilateralFilter() 함수를 사용하여 영상을 Blurring 하고 cv2.Canny() 함수를 사용하여 영상의 Edge 부분을 따내 표현해준 뒤 두 영상을 cv2.bitwise_and ( bit 단위 And 논리 연산 ) 처리하여 합쳐주면 ..

Program/OPEN_CV 2022.05.21

[Open CV] 필터링 _ 잡음제거 _ 양방향 필터

가우시안 필터 - 가우시안 잡음 제거에는 가우시안 필터가 효과적이다. 일반 영상에서 노이즈가 생겨서 지글지글하게 나타나는 픽셀값들에 가우시안 필터링을 거치게되면 훨씬 부드러운 영상이 되는것을 볼 수 있다. 하지만 가우시안 Blur 를 심하게하면 엣지들의 날카로운 느낌이 사라져버리는 단점이 있을 수 있다. 그래서 위같은 단점을 제거하고 가우시안 Blur의 노이즈제거 효과는 살리기위한 필터를 연구해서 나오게 된 필터가 있다. - 양방향 필터 ( Bilateral filter ) 에지보전 잡음 제거 필터의 하나이고 평균 값 필터 또는 가우시안 필터는 에지 부근에서도 픽셀 값을 평탄하게 만드는 단점이 있는데 이를 기준 픽셀과 이웃 픽셀과의 거리, 그리고 픽셀 값의 차이를 함께 고려하여 블러링 정도를 조절하도록 ..

Program/OPEN_CV 2022.05.20

[Open CV] 필터링 _ 샤프닝 _ 언샤프 마스크 필터

언샤프 마스크 필터링이란? - 날카롭지 않은 ( unsharp ) 영상, 부드러워진 영상을 이용하여 날카로운 영상을 생성하는 필터링을 말한다. 위와같이 기존에 점선처럼 순간적으로 변하는 픽셀들을 파란선처럼 부드럽게 변형시킨 이후 원본영상에서 부드러워진 영상의 차영상을 구하게 되면 실제 날카로운 부분만 남게되어 언샤프 마스크 생성이 가능해진다. 마지막으로 원본영상과 언샤프마스크를 필터링 시켜주면 픽셀이 변하는 구간들을 강조하는 형태의 변환이 일어난다. 원본영상에서의 엣지의 픽셀값 Min Max 차이와 언샤프마스크 필터링을 거친 엣지의 픽셀값 Min Max 차이를 비교하면언샤프 마스크 필터링을 거친 엣지의 픽셀값의 Min Max 차이가 더 큰 것을 볼 수 있는데 결국 이 필터는 엣지 부근에서 Contrast..

Program/OPEN_CV 2022.05.19

[Open CV] 필터링 _ 잡음제거 _ 미디언 필터

영상의 잡음이란? ( Noise ) 영상의 픽셀 값에 추가되는 원치 않는 형태의 신호이다. 기존 영상에 원치않는 임의의 값에 의해 픽셀이 변형된 상태를 말한다. 하드웨어에 의한 잡음이 있고, 소프트웨어 의한 잡음이 있다. 이미지를 획득하는 과정에서 CCD 센서 또는 CMOS 센서가 광학적신호를 변환 즉, 아날로그 신호를 디지털 신호로 변환하는 과정에서 노이즈가 발생하게 된다. 이 잡음의 종류에는 - 가우시안 잡음 ( Gaussian noise ) - 소금&후추 잡음 ( Salt&Pepper noise ) 이렇게 두종류가 있다. 소금&후추 잡음은 최근에는 많이 볼 수 없는 형태의 잡음인데 예전 아날로그 통신시 통신과정에서 임의의 스파크가 발생했을때 0 or 255로 변화가 돼서 튀는 잡음이다. 가우시안 잡..

Program/OPEN_CV 2022.05.18

[Open CV] 필터링 _ 블러링 _ 가우시안 필터

2022.05.17 금일은 블러링 ( 가우시안 필터 ) 관한 강의였다. 전일 강의에서 나왔던 평균값 필터 ( Mean Filter ) 의 경우 필터링 대상 위치에서 가까이 있는 픽셀과 멀리 있는 픽셀이 모두 같은 가중치를 사용하여 평균을 계산하기 때문에 멀리 있는 픽셀의 영향을 많이 받을 수 있다는 단점이 있다. 전일 Mask의 값을 보면 5x5의 Mask 에서 가장 바깥쪽에 있는 픽셀값과 중심부근의 픽셀값 모두 같은 가중치로 1/25 의 필터링을 진행한 것을 보면 알 수 있다. 하지만 가우시안 필터는 중심 픽셀과 가까운 픽셀은 큰 가중치를 주고 , 멀리 있는 픽셀은 작은 가중치를 주어 평균을 계산하기 때문에 조금 더 자연스러운 값을 받을 수 있다. ( 1차원 ) 가우시안 함수란? ( Gaussian F..

Program/OPEN_CV 2022.05.17

[Open CV] 필터링 _ 블러링 _ 평균값 필터

2022.05.16 금일은 블러링 ( 평균값 필터 ) 관한 강의였다. 평균값 필터란 ? - 영상의 특정 좌표값을 주변 픽셀 값들의 산술 평균으로 설정하는 것 - 픽셀들 간의 그레이스케일 값 변화가 줄어들어 날카로운 에지가 무뎌지고, 영상에 있는 잡음의 영향이 사라지는 효과가 있다. 위와 같이 자기 자신을 포함해 주변부의 픽셀의 개수를 나누어 필터링 해주는 것. 실제로 왼쪽 원본 영상보다 오른쪽 3x3 , 5x5크기의 마스크로 평균값 필터를 적용한 영상들이 더욱 부드러워지는 것을 볼 수 있다. 이렇게 필터 결과는 부드러워질 수 있지만 더 많은 연산량이 필요하기 때문에 시간이 더 소요될 수 있다. kernel 의 변수에 np.array ( [[1/9, 1/9, 1/9], [1/9, 1/9, 1/9], [1/..

Program/OPEN_CV 2022.05.16

[Open CV] 필터링 _ 필터링 이해하기

영상의 필터링이란? - 영상에서 필요한 정보만 통과시키고 원치 않는 정보는 걸러내는 작업이다. 영상처리에서 필터링은 2가지 방법이 존재한다. - 주파수 공간에서의 필터링 ( Frequency domain filtering ) 복잡한 수학적인 이론에 대한 이해가 필요한데 일반적인 영상을 주파수 공간으로 변형 ( 이동 ) 한 뒤 저주파성분 ( 부드러운 성분 ) 과 고주파성분 ( 픽셀값이 급격히 자주 바뀌는 성분 ) 을 제외한 중간성분만을 통과시키는 필터링 기법이다. - 공간적 필터링 ( Spatial domain filtering ) 영상의 픽셀 값을 직접 이용 ( 변형 ) 하는 필터링 방법이다. OpenCV에서는 기본적으로 공간적 필터링을 주로 사용하게 되는데 경우에 따라 영상의 사이즈나 사용하고자하는 필..

Program/OPEN_CV 2022.05.15

[Open CV] 기본적인 영상처리 기법 _ 실전코딩 ( 크로마키 합성 )

크로마키 합성이란? - 녹색 또는 파란색 배경에서 촬영한 영상에 다른 배경 영상을 합성하는 기술이다. 크로마키 합성을 위해서는 - 녹색 스크린 영역 추출하기 - 녹색 영역에 다른 배경 영상을 합성하여 저장하기 - 스페이스바를 이요하여 크로마키 합성 동착 제어하기 등의 기능이 필요하다. 일단 cv2.inRange() 함수를 사용하여 녹색 영역의 범위만 검출할 수 있다.그리고 cv2.copyTo() 함수를 사용하여 마스크 연산을 진행한다. 일단 기본적인 사용 함수들은 위 2가지가 있고 실제로 함수들을 어떻게 활용하는지 보자 import sysimport numpy as npimport cv2cap1 = cv2.VideoCapture('woman.mp4')if not cap1.isOpened(): #파일 오..

Program/OPEN_CV 2022.05.14

[Open CV] 기본적인 영상처리 기법 _ 히스토그램 역투영

저번 강의에서도 InRange 함수를 사용하여 원하는 색상값을 추출할 수 있었는데 히스토그램 역투영은 어떤 색상의 히스토그램 분포를 사용하여 해당 히스토그램 분포에 부합하는 픽셀을 선별하는 방법이다. 이는 원색이 아닌 임의의 색상을 추출 ( 선별 ) 하고자 할때 좀 더 효과적으로 사용할 수 있다. 예를들면 영상에 살색 또는 살구색등의 색상들을 HSV 에서 추출하면 H의 애매한 영역에서 추출해야하는데히스토그램 역투영 방법을 사용하면 해당 영상에 분포해있는 살색 부분 또는 살구색 부분을 추출할 수 있다. 위 영상에서 파란색 박스에 해당하는 색만 추출해내고싶다고 한다면 아래와같이 해당 ROI 내부색상과 가장 부합하는 색상만 추출되는 것을 볼 수 있다. cv2.selectROI 함수를 사용하여 위와같은 파란색 ..

Program/OPEN_CV 2022.05.13
반응형