반응형

opencv 77

[파이썬 OpenCV] 영상의 이진화 - cv2.threshold

황선규 박사님의 'OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝' 을 공부하면서 정리해 보았습니다. 예제 코드 출처 : 황선규 박사님 github홈페이지 『OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝』 예제 소스 코드는 아래 링크를 참고하세요 sunkyoo.github.io 영상의 이진화 - Binarization 영상의 이진화는 영상의 픽셀 값을 0 또는 255(1)로 만드는 연산입니다. 0은 검정색, 255는 흰색을 의미합니다. 이진화를 하는 이유는 1. 배경과 객체를 구분, 2. 관심 영역과 비관심 영역 구분 입니다. 마스크 영상도 이진 영상의 한 형태라고 볼 수 있습니다. 1. 그레이스케일 영상의 이진화 그레이스케일 영상의 이진화는 픽셀 값이 임계값을 넘으면 0(검은색) 임계값 보다 낮으..

[파이썬 OpenCV] 동전 카운터 - cv2.HoughCircles

황선규 박사님의 를 공부한 내용을 정리해 보았습니다. 예제 코드 출처 : 황선규 박사님 github홈페이지 『OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝』 예제 소스 코드는 아래 링크를 참고하세요 sunkyoo.github.io 동전 카운터 영상의 동전을 검출하여 금액이 얼마인지를 자동으로 계산하는 프로그램입니다. 편의상 동전은 100원짜리와 10원짜리만 있다고 가정했습니다. 구현할 기능 동전 검출하기 -> 허프 원 검출 동전 구분하기 -> 색상 정보 이용 입니다. 색상 정보를 이용할 때 hsv로 색 공간을 변환해서 h값을 이용합니다. 10원 동전의 경우 빨강색 성분이 있어 히스토그램 값을 보았을 때 h값이 양쪽에 위치하게 됩니다. 양쪽에 있게 되면 10원을 판별하기가 어렵습니다. 이를 해결하기 위..

[파이썬 OpenCV] 영상에서 원 검출하기 - 허프 변환 원 검출 - cv2.HoughCircles

황선규 박사님의 를 공부한 내용을 정리해 보았습니다. 예제 코드 출처 : 황선규 박사님 github홈페이지 『OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝』 예제 소스 코드는 아래 링크를 참고하세요 sunkyoo.github.io 허프 변환 원 검출 허프 변환을 응용하여 원을 검출할 수 있습니다. 직선 검출과 같이 원의 방정식을 파라미터 좌표평면에 표현하면 3차원 축적 평면이 되므로 연산속도가 너무 오래 걸립니다. 속도를 더 빠르기 위해 제안된 방법이 Hough gradient method 입니다. Hough gradient method 원에서 검출된 에지의 원주 점의 정보를 이용합니다. 원 에지 픽셀에서 그래디언트를 계산합니다. 그래디언트 크기 방향으로 직선을 그리면서 값을 누적시킵니다.. 그래디언..

[파이썬 OpenCV] 영상에서 직선 검출하기 - 허프 변환 직선 검출 - cv2.HoughLines, cv2.HoughLinesP

황선규 박사님의 를 공부한 내용을 정리해 보았습니다. 예제 코드 출처 : 황선규 박사님 github홈페이지 『OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝』 예제 소스 코드는 아래 링크를 참고하세요 sunkyoo.github.io [파이썬 OpenCV] 영상의 윤곽선 검출하기 - 캐니 에지 검출 - cv2.Canny 황선규 박사님의 를 공부한 내용을 정리해 보았습니다. 예제 코드 출처 : 황선규 박사님 github홈페이지 『OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝』 예제 소스 코드는 아래 링크를 참고하세�� deep-learning-study.tistory.com 지난 포스팅에서 cv2.canny 함수를 이용해여 윤곽선을 검출하는 것을 공부했습니다. 이번에는 cv2.canny로 검출한 윤곽선..

[파이썬 OpenCV] 문서 스캐너 구현하기 - cv2.warpPerspective, cv2.setMouseCallback

황선규 박사님의 를 공부한 내용을 정리해 보았습니다. 예제 코드 출처 : 황선규 박사님 github홈페이지 『OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝』 예제 소스 코드는 아래 링크를 참고하세요 sunkyoo.github.io 황선규 박사님의 깃허브에 올라와 있는 문서 스캐너 코드를 따라해 보았습니다. 문서 스캐너 구현하기 위 그림에서 대각선으로 놓여있는 문서를 똑바른 직사각형 크기의 영상으로 변환하겠습니다. 구현할 기능 3가지 마우스로 문서 모서리 선택과 이동시키기 키보드 ENTER키 인식 왜곡된 문서 영상을 직사각형 형태로 똑바로 펴기(투시변환 이용) 예제코드 import sys import numpy as np import cv2 # 관심영역을 모서리 네개로 선택하는 함수 def drawRO..

[파이썬 OpenCV] 영상의 미분과 소벨 필터, 샤를 필터 - cv2.Sobel, cv2.Scharr

황선규 박사님의 를 공부한 내용을 정리해 보았습니다. 예제 코드 출처 : 황선규 박사님 github홈페이지 『OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝』 예제 소스 코드는 아래 링크를 참고하세요 sunkyoo.github.io 1. 에지 검출과 미분 에지 - edge 에지는 영상에서 픽셀의 밝기 값이 급격하게 변하는 부분입니다. 객체와 객체, 객체와 배경에 어떤 경계를 나타내는 용어입니다. 경계부분에는 픽셀값이 크게 변경된다고 가정하고 에지를 구합니다. 영상에 미분을 하는 이유는 에지를 검출하기 위함입니다. 기본적인 에지 검출 방법 에지 검출을 위해 픽셀값이 급격하게 변하는 부분을 찾아야합니다. 미분은 변화율을 나타내는 척도입니다. 영상을 미분하여 에지를 검출할 수 있습니다. 영상을 (x,y) 변..

[파이썬 OpenCV] 영상에 리매핑(remapping) 적용하기 - cv2.remap

황선규 박사님의 , 패스트 캠퍼스 OpenCV 강의를 공부한 내용을 정리해 보았습니다. [파이썬 OpenCV] 어파인 변환과 투시 변환 - cv2.getAffineTransform, cv2.getPerspectiveTransform, cv2.warpPerspectivee 황선규 박사님의 , 패스트 캠퍼스 OpenCV 강의를 공부한 내용을 정리해 보았습니다. 어파인 변환과 투시 변환 1. 어파인 변환 - Affine Transform 어파인 변환은 영상의 이동, 전단, 확대, 회전을 조합�� deep-learning-study.tistory.com 저번 포스팅에서 어파인 변환과 투시 변환에 대해 공부했습니다. 이번에는 리매핑에 대해 알아보겠습니다. 리매핑(remapping) 리매핑을 잘 활용하면 입력 영상..

[파이썬 OpenCV] 어파인 변환과 투시 변환 - cv2.getAffineTransform, cv2.getPerspectiveTransform, cv2.warpPerspectivee

황선규 박사님의 , 패스트 캠퍼스 OpenCV 강의를 공부한 내용을 정리해 보았습니다. 어파인 변환과 투시 변환 1. 어파인 변환 - Affine Transform 어파인 변환은 영상의 이동, 전단, 확대, 회전을 조합할 때 직사각형이 평행사변형으로 변화하게 됩니다. 이것을 통들어서 어파인 변환이라고 합니다. 어파인 변환을 표현하는 방법은 2 X 3 행렬의 실수형에 회전, 크기, 이동 정보가 들어가 있습니다. 어파인 변환은 미지수가 6개이기 때문에 6개의 식이 필요하며 점 3개가 어디로 이동했는지 알면 행렬로 표시할 수 있습니다. 점 세개의 이동정보를 알면 어파인 행렬로 표시가 가능하며 세개의 이동정보로 마지막 점의 위치를 유추할 수 있습니다. 2. 투시 변환 - Perspective transform ..

[파이썬 OpenCV] 영상의 회전 - cv2.getRotationMatrix2D, cv2.warpAffine

황선규 박사님의 , 패스트 캠퍼스 OpenCV 강의를 공부한 내용을 정리해 보았습니다. 회전 변환 - Rotation transformation 회전 변환은 영상을 특정 각도만큼 회전시키는 변환입니다. (반시계 방향) 반시계 방향으로 세타만큼 회전시킬 때 sin, cos 함수로 표현할 수 있습니다. affine 행렬을 생성하고 affwrap 함수를 이용하여 간단히 회전 할 수 있습니다. 회전 변환을 위한 Affine 행렬을 생성하는 방법은 두 가지가 있습니다. 1. 영상의 좌측 상단 기준 회전 np.array로 Affine 행렬을 생성합니다. 생성한 Affine 행렬을 warpAffine 함수의 입력 인자로 입력해주면 됩니다. src = cv2.imread('tekapo.bmp') if src is No..

[파이써 OpenCV] 이미지 피라미드(다운샘플링, 업샘플링) - cv2.pryDown, cv2.pryUp

황선규 박사님의 , 패스트 캠퍼스 OpenCV 강의를 공부한 내용을 정리해 보았습니다. [파이썬 OpenCV] 영상의 확대와 축소(크기 변환) - cv2.resize 함수 설명, interpolation 인자 황선규 박사님의 , 패스트 캠퍼스 OpenCV 강의를 공부한 내용을 정리해 보았습니다. [파이썬 OpenCV] 영상의 기하학적 변환 - 전단 변환 - cv2.warpAffine 황선규 박사님의 , 패스트 캠퍼스 OpenCV 강의를 공 deep-learning-study.tistory.com 위 포스팅에서 영상의 확대와 축소를 cv2.resize를 이용하여 구현해보았습니다. 이번에는 이미지 피라미드의 개념과 cv2.pryDown, cv2pryUp을 이용해서 영상을 확대, 축소하고 이미지 피라미드를 구..

반응형