[OpenCV] 특징점 검출과 매칭
·
OpenCV
코너코너의 특징평탄한 영역 & Edge 영역은 고유한 위치를 찾기 어려움따라서 변별력이 높고 영상의 이동, 회전 변환에 강인한 코너를 검출함다양한 코너 검출 방법해리스 코너 응답 함수 계산cv2.cornerHarrissrc,blockSize,ksize,k,dst=None,borderType=None -> dstsrc : 입력 단일 채널 8비트 또는 실수형 영상blockSize : 코너 응답 함수 계산에서 고려할 이웃 픽셀 크기. 보통 2~5 [3 정도면 무난하게 사용 가능]ksize : [미분을 위한] 소벨 연산자를 위한 커널 크기. 보통 3k : 해리스 코너 검출 상수 [보통 0.04~0.06]dst : 해리스 코너 응답 계수. src와 같은 크기의 행렬borderType : 가장자리 픽셀..
[OpenCV] 영상 분할과 객체 검출
·
OpenCV
그랩컷: Grabcut - Graph cut 기반 영역 분할 알고리즘영상의 픽셀을 그래프 정점으로 갖누하고, 픽셀들을 두 개의 그룹으로 나누는 최적의 컷을 찾는 방식참고 pagehttps://grabcut.weebly.com/background--algorithm.htmlhttps://www.cs.ru.ac.za/research/g02m1682/https://docs.opencv.org/3.4/d8/d83/tutorial_py_grabcut.html OpenCV: Interactive Foreground Extraction using GrabCut AlgorithmGoal In this chapter We will see GrabCut algorithm to extract foreground in ima..
[OpenCV] 이진 영상 처리
·
OpenCV
0과 1의 컴퓨터세계에서 이미지도 예외는 아니다. 픽셀 값을 0 , 255으로 구분해서 객체를 인식할 수 있고, 영역을 설정할 수도 있다.예를 들어, 세포 이미지를 이진화 할 경우, 다음과 같은 영상이 출력된다.이 때, threshold 값을 설정해서 특정 범위로 값을 제한시킬 수도 있다.threshold 함수cv2.thresholdsrc,thresh,maxval,type,dst=None -> retval, dstsrc : 입력 영상. 다채널, 8비트 또는 32비트 실수형thresh : 사용자 지정 임계값maxval : cv2.THRESHBINARY 또는 cv2.THRESH_BINARY_INV 사용. 보통 255로 지정한다.type : cv2.THRESH로 시작하는 플래그로, ..
[OpenCV] 영상의 특징 추출
·
OpenCV
이전까지는 그냥저냥 할만했는데 여기서부터 처음 들어보는 개념과 내용이 나온다. 함수에 인자도 많아지고, 개념 자체가 어려워졌기 때문에에지 검출과 미분에지 [Edge]: 영상에서 픽셀의 밝기 값이 급격하게 변하는 부분일반적으로 배경과 객체, 또는 객체와 객체의 경계를 의미한다.기본적인 에지 검출 방법: 영상을 [x,y] 변수의 함수로 간주했을 때, 이 함수의 1차 미분 값이 크게 나타나는 부분을 검출→ threshold T를 적당히 잡아서 그 부분보다 큰 부분을 edge라고 설정한다.Prewitt, Sobel, Scharr 필터가 있는데 보통은 Sobel 필터를 사용한다고 한다.영상의 미분과 소벨 필터소벨 필터를 이용한 미분 함수cv2.Sobel(src, ddepth, dx, dy, dst=None, ks..
[OpenCV] 기하학적 변환
·
OpenCV
영상의 이동 변환과 전단 변환이동 변환 [Translation transformation]: 가로 또는 세로 방향으로 영상을 특정 크기만큼 이동시키는 변환cv2.warpAffinesrc,M,dsize,dst=None,flags=None,orderMode=None,borderValue=None -> dstsrc : 입력 영상M : 2x3 어파인 변환 행렬 [실수형]dsize : 결과 영상 크기 [w,h] 튜플, [0,0]이면 src와 같은 크기로 설정dst : 출력 영상flags : 보간법, 기본값은 cv2.INTER_LINEARborderMode : 가장자리 픽셀 확장 방식. 기본값은 cv2.BORDER_CONSTANTborderValue : cv2.BORDER_CONSTANT일 때 사용할..
[OpenCV] 필터링
·
OpenCV
영상 매체에서 선정적이거나 부정적인 의미를 담고 있는 물체를 가릴 때 흔히 사용하는 모자이크에는 어떤 원리가 들어있을까?자세히 보면 알 수 있듯이 하나의 픽셀마다 각각 다른 색으로 보이는 것을 확인할 수 있다. 필터링도 유사한 의미를 갖고 있다.정의를 보면, 필터링이란 영상에서 필요한 정보만 통과시키고 원하지 않는 정보는 걸러내는 작업을 의미한다.여러가지 필터링 기법이 있고, 크게 두 가지로 나눌 수 있다.주파수 공간에서의 필터링 공간적 필터링영상의 픽셀 값을 직접 이용하는 필터링 방법: 대상 좌표의 픽셀 값과 주변 픽셀 값을 동시에 사용주로 마스크 연산을 이용한다: Mask=kernel=window=template마스크의 형태와 값에 따라 필터의 역할이 결정되므로 다음 4가지 작업이 중요하다.1) 영상..
[OpenCV] 기본 영상 처리
·
OpenCV
이번 Chapter는 영상처리에 대한 내용이다.영상의 밝기 조절화소 처리 Pointprocessing: 입력 영상의 특정 좌표 픽셀 값을 변경하여 출력 영상의 해당 좌표 픽셀 값으로 설정하는 연산조건- 결과 영상의 픽셀 값이 정해진 범위에 있어야 한다.- 반전, 밝기 조절, 명암비 조절 등밝기 조절: 영상을 전체적으로 더욱 밝거나 어둡게 만드는 연산영상의 밝기 조절을 위한 영상의 덧셈 연산cv2.addsrc1,src2,dst=None,mask=None,dtype=None -> dstsrc1 : [입력] 첫 번째 영상 또는 스칼라src2 : [입력] 두 번째 영상 또는 스칼라dst : [출력] 덧셈 연산의 결과 영상mask : 마스크 영상dtype : 출력 영상 [dst] 의 타입 참고 사..
[OpenCV] OpenCV 기초
·
OpenCV
OpenCV와 NumPy의 자료형을 비교해보면 위의 표와 같다. 단순히 표현 방식만 다를 뿐 같은 의미를 갖는다는 것을 알 수 있다.import cv2img1=cv2.imreadcat.bmp,cv2.IMREADGRAYSCALEimg2=cv2.imreadcat.bmp,cv2.IMREADCOLORprinttype(img1:', typeimg1) #typeimg1: printimg1.shape:,img1.shape #img1.shape : 480,640printimg2.shape:,img2.shape #img2.shape : 480,640,3printimg2.dtype:,img2.dtype #img2.dtype: uint8h,w=img2.shape[:..
[OpenCV] 컴퓨터비전의 시작
·
OpenCV
23년 겨울방학때 OpenCV에 대해 공부하면서 Velog에 정리했던 글들을 옮기는 중입니다. OpenCV 관련해서는 9개의 포스팅이 올라갈 예정입니다.지금부터 올리는 OpenCV 관련 글은 배우는 입장으로 배운 내용에 대해 정리하는 글들이고, 출처는 패스트캠퍼스에서 황선규 박사님의 온라인 강의 'OpenCV를 활용한 컴퓨터비전과 딥러닝'입니다.OpenCV의 시작OpenCV란?: Open Source Computer Vision의 약자로 영상 처리에 사용할 수 있는 Python 오픈 소스 라이브러리 이다. OpenCVOpenCV has 15 repositories available. Follow their code on GitHub.github.com한가지 예시 코드를 보면, 아래의 코드에서는 cv2 [..