Opencv는 영상 데이터를 numpy.ndarrary로 표현\*numpy.ndarrayndim: 차원 수. len(img.shape)shape: 각 차원의 크기(h,w) 또는 (h,w,3)size: 전체 원소 개수dtype: 원소의 데이터 타입. 영상 데이터는 uni
shape: 각 차원의 크기.(h,w) or (h,w,3)dtype: 원소의 데이터 타입을 나타내는 것으로 보통 numpy.uint8지정arr: 생성된 영상(numpy.ndarrary)numpy.empty(): 임의의 값으로 초기화된 배열numpy.zero(): 0으로
정의: Region of Interest(관심영역)특징: 영상에서 특정 연산을 하고 싶은 부분 영역정의: ROI연산을 지원하는 일부 함수들은 마스크 영상을 인자로 함께 전달해야함예시: cv2.copyTo(), cv2.calcHist(), cv2.bitwise_or(),
선, 도형, 문자열을 출력하는 도메인 제공선 그리기: 직선, 화살표, 마커도형 그리기: 사각형, 원, 타원, 다각형문자열 출력주의할 점그레이스케일 영상은 컬러로 그리기 안된다\-> cv2.cvtColor()함수로 BGR컬러로 반환 후 그리기직선 그리기img: 그림 그릴
cv2.VideoCapture 클래스정의: 카메라와 동영상으로부터 프레임을 받아오는 작업을 cv2.VideoCapture클래스 하나로 처림과정open() -> read() -> frame()!!카메라 열기index: camera_id + domain_offset_if
cv2.VideoWriter클래스OpenCV에서 cv2.VideoWriter 클래스 이용하여 동영상으로 저장 가능(크기와 데이터가 같음)Fourcc (4-문자코드, four character code)https://www.fourcc.org/codecs.php
화소 처리(Point processing)입력 영상의 특정 좌표 픽설 값을 변경하여 출력 영상의 해당 좌표 픽셀 값으로 설정하는 연산.출력값 : 0,255 / 입력값 : 0,255결과 영상의 픽셀 값이 정해지진 범위에 있어야 한다.반전, 밝기 조절, 명암비 조절 등
두 영상의 같은 위치에 존재하는 픽셀 값을 더한 값을 설정덧셈 결과 > 255 -> 픽셀 값 =255( 포화연산, 흰색)src1 : (입력) 첫 번째 영상 또는 스칼라src2 : (입력) 두 번째 영상 또는 스칼라dst : (출력) 덧셈 연산의 결과 영상mask : 마
컬러 영상은 3차원 numpy.ndarray로 표현하고, img.shape = (h,w,3)OpenCV에는 BGR순서Code가산 혼합: 색의 삼원소 혼합하여 색상 표현예시: TV, 모니터, 카메라 센서 Bayer필터, 비트맨색상 채널 분리m: 다채널 영상(B,G,R)로
히스토그램(Histogram) 정규화된 히스토그램(Normalized histogram)해당 그레이스케일 값을 갖는 픽셀이 나타날 확률영상과 히스토그램의 관계히스토그램 구하기그레이스스케일 영상의 히스토그램 구하기컬러 영상의 히스토그램 구하기OpenCV 그리기 함수
명암비(Contrast) 기본적인 명암비 조절 함수 코드히스토그램 스트레칭(Histogram stretching) 정규화 함수히스토그램 스트레칭을 통해 명암비 조절변환 함수
히스토그램이 그레이스케일 전체 구간에서 균일한 분포로 나타내게 변경하는 명암비 향상 기법히스토그램 균등화, 균일화, 평탄화히스토그램 함수 구하기 : 정규화된 히스토그램 함수 구하기: 누적 분포 함수(cdf)구하기: 변환함수: dst(x,y) = round(cdf(src
RGB색 공간에서 녹색 영역 추출하기HSV색 공간에서 녹색 영역 추출하기RGB색 공간에서 녹색 영역 추출하기HSV색 공간에서 녹색 영역 추출하기특정 범위 안에 있는 행렬 원소 검출src: 입력행렬 lowerb: 하한 값 행렬 혹은 스칼라upperb: 상한 값 행렬 혹
히스토그램 역투영(Histogram backprojection)임의의 색상 영역 검출 시 효과적이다. 히스토그램 역투영을 이용한 살색 검출입력 영상에서 미리 구한 살색 히스토그램에 부합하는 픽셀식별하기히스토그램 역투영 함수images: 입력 영상 리스트channe
정의: 녹색 또는 파란색 배경에서 촬영한 영상을 다른 배경 영상에 합성구현할 기능:녹색 스크린 영역 추출녹색 영역에 다른 배경 영상 합성하여 저장스페이스바를 이용하여 크로마 키 합성 동작 제어하기녹색 스크린 영역 추출하기크로마키 영상을 HSV색 공간으로 변환cv2.in
영상의 필터링(image filtering)영상에서 필요 정보만 통과시키고 원하지 않는 것은 걸러내기주파수 공간에서의 필터링(Frequency domain filtering)공간적 필터링(Spatial domain filtering)영상의 픽셀 값 직접 이용대상 좌표의
평균 값 필터(Mean filter)영상의 특정 좌표 값을 주변 픽셀 값들의 산술 평균으로 설정픽셀들 간의 그레이스케일 값의 변화가 줄어들어 잡음의 영향이 사라짐실제 영상에 평균 값 필터 적용마스크 크기가 커질수록 평균 값 필터 결과가 부드러워짐더 많은 연산량이 필요
평균 값 필터(Mean filter) 영상의
부드러운 영상을 이용하여 날카로운 영상 생성필터 구하기구현하기(샤프닝 조절하도록 수식 변경)컬러 영상
영상 잡음(Noise)영상의 픽셀 값에 원하지 않는 형태로 추가되는 신호잡음의 종류가우시안 잡음소금&후추 잡음주변 픽셀들의 값을 정렬하여 중앙값으로 픽셀 대체소금&후추 잡음 제거에 효과적함수src: 입력영상으로 각 채널로 처리됨ksize: 커널의 크기로 1보다 큰 홀수
가우시안 잡음 제거에는 효과적양방향 필터(Bilateral filter)에지 보전 잡음 제거 필터의 하나픽셀 값을 평탄하게하는 단점(평균값 필터 혹은 가우시안 필터에선)기준 픽셀과 이웃 픽셀의 거리와 값 차이를 고려하여 블러링 정도 조절양방향 필터에지가 아닌 부분에서만
카툰 필터 카메라카메라 입력 영상에 실시간으로 재미있는 필터링 적용구현 기능카툰 필터입력 영상의 색상 단순화 및 에지 부분 검정색 강조스케치 필터평탄한 영역은 흰색에지 근방에서 어두운 영역을 검정으로 설정하고 밝은 영역은 흰색스페이스바 누를 때마다 모드 변경CODE
영상을 구성하는 픽셀 배치구조 변경을 통해 전체 영상의 모양 바꾸기image registration, removal of geometric distortion이동 변환(Translation transformation)가로 또는 세로 방향으로 영상을 특정 크기만큼 이동시
크기 변환(Scale transformation)영상의 크기를 원본보다 크게 혹은 작게 만든다x와 y축 방향으로 스케일 비율 지정영상의 크기 변환src: 입력 영상dsize: 결과 영상 크기로 (w,h)튜플이다. (0,0)이면 fx와 fy값을 이용하여 결정dst: 출력
하나의 영상에 대해 다양한 해상도의 영상 세트 구성가우시안 블러링이나 다운 샘플링 형태로 축소한다src: 입력 영상dst: 출력 영상dstsize: 출력 영상의 크기로 따로 지정하지 않으면 입력 영상의 가로, 세로 크기의 1/2로 설정borderType: 가장자리 픽셀
회전 변환(rotation transformation)영상을 특정 각도만큼 회전(반시계 방향)예제영상의 회전 변환 행렬 구하기center: 회전 중심 좌표(x,y)튜플angle: (반시계방향) 회적 각도로 음수는 시계 방향이다scale: 추가적인 확대 비율retval:
정의: 영상의 평행이동, 확대 및 축소, 회전 등의 조합으로 만들수 있는 기하학적 변환으로 셀의 위치를 일정 규칙에 따라 옮김으로한다.시각화행렬좌표 행렬 구하기src: 3개의 원본 좌표점. numpy.ndarrary, shape(3,2)ex:) np.array(\[x1
영상의 특정 위치 픽셀을 다른 위치에 배치하는 것공식: dst(x,y) = src(mapx(x,y), mapy(x,y))특징: 어파인 변환, 투시 변환도 리매핑으로 표현 가능예시: 함수src: 입력영상map1: 결과 영상의 (x,y)좌표가 참조할 입력 영역의 x좌표로
에지(edge)영상에서 픽셀의 밝기 값이 급격하게 변하는 부분배경과 객체 혹은 객체와 객체의 경계 기본적인 에지 검출 방법영상을(x,y)변수의 함수로 간주할 때, 이 함수의 1차 미분값이 크게 나타나는 부분 검출1차 미분의 근사화전진 차분 후진 차분 중앙 차분 다양한
카메라로 촬영한 문서 영상을 똑바로 펴서 저장해주는 프로그램구현할 기능마우스로 문서 모서리 선택 & 이동키보드 ENTER키 인식왜곡된 문서 영상을 직사각형 형태로 똑바로 펴기(투시 변환)마우스로 문서 모서리 선택 및 이동하기마우스 왼쪽 버튼이 눌린 좌표가 네 개의ㅣ 모
영상의 그래디언트(gradient)함수 f(x,y)를 x축과 y축으로 편미분하여 벡터로 표현: 그래디언트 크기:그래디언트 방향:피타고라스로 활용:실제 영상에서 구한 그래디언트의 크기와 방향그래디언트 크기: 픽셀 값의 차이 정도, 변화량그래디언트 방향: 픽셀 값이 가장
좋은 에지 검출기의 조건정확한 검출: 에지가 아닌 점을 에지로 찾거나 혹은 에지인데 에지로 찾지 못하는 확률의 최소화정확한 위치: 실제 에지의 중심을 검출단일 에지: 하나의 에지는 하나의 점으로 표현가우시안 필터링 잡음 제거 목적 그래디언트 계산주로 소벨 마스크 사용크
최신 API링크: https://docs.opencv.org/4.x/filename: 불러올 영상 파일 이름(문자열)flags: 영상 파일 불러오기 옵션 플래그retval: 불러온 영상 데이터(numpy.ndarray)filename: 지정할 영상 파일 이름(
2차원 영상 좌표에서 직선의 방정식을 파라미터 공간으로 변환 후 직선 찾기직선 성분과 관련 원소값을 1씩 증가변화는 과정을 사진으로 표현하겠습니다.y축과 평행한 수직선을 잘 표현하지 못해서 극좌표계 직선의 방정식을 쓴다.\*a는 세타xcosa + ysina = p방정식
원의 방정식:(x-a)^2 + (y-b)^2 =c ^2 속도 향상을 위해 Hough gradient method사용입력영상과 동일한 2차원 평면 공간에서 축적 영상 생성에지 픽셀에서 그래디언트 계산에지 방향에 따라 직선 그리며 값 누적원의 중심을 먼저 찾고, 적절한 반
영상의 픽셀 값을 0 or 255(1)로 만드는 연산으로 배경 vs 객체 / 관심영역 vs 비관심 영역으로 할 때 사용이 된다.\*T: 임계값, 문턱치, thresholdsrc: 입력 영상. 다채널, 8비트 또는 32비트 실수형.thresh: 사용자 지정 임계값maxv
영상의 히스토그램이 bimodal이고, 전경과 배경 픽셀 분포가 비슷하다영상의 히스토그램이 bimodal이고, 전경과 배경 픽셀 분포가 다르다입력 영상이 배경과 객체 두 개로 구성이 되어있다(Bimodal histogram)임의의 임계값 T에의해 픽셀 분포 그룹의 분리
균일하지 않은 조명 환경에서 촬영된 영상의 이진화하기sudoku.jpg파일을 입력으로 사용위의 문제 해결하기불균일한 조명 성분 보상 후 이진화 수행하기픽셀 주변에 윈도우 설정하여 지역 이진화 수행윈도우 크기윈도우 형태 : Uniform? Gaussian?윈도우 겹칠건가
객체 크기는 감소 & 배경은 확대구조 요소가 객체 내부에 완전히 포함될 경우 고정점 픽셀을 255로 설정구조 요소와 객체 영역이 한 픽셀이라도 만날 경우 고정점 픽셀을 255로 설정객체 크기는 감소 & 배경은 확대이진 영상의 침식과 팽창 예제결과침식 후 팽창팽창 후 침
동일한 객체에 속한 모든 픽셀에 고유한 번호를 매기는 작업retval: 객체의 수 + 1(배경 포함)stats 행렬행은 순서대로 배경, 1번 객체, 2번 객체, 3번 객체의 정보를 나타낸다.열은 객체 정보를 나타내며, 순서대로 좌측 상단의 x 좌표, y좌표, width
코드 편의상 이번 실전코딩에는 100원과 10원만 사용먼저 크기에 따른 구분Hue 색상 분포에 따른 구분10원짜리는 붉은색에 가깝고, Hue값이 맨 앞과 맨 뒤쪽에 분포되어 있음.
그래프 컷 기반 영역의 분할 알고리즘영상의 픽셀을 그래프 정점으로 간주하여 픽셀들을 두 개의 그룹으로 나누는 최적의 컷을 찾는 방식입니다.사작형 지정 자동 분할사용자가 지정한 전경/ 배경 정보를 활용하여 영상 분할하기mg: 입력 영상. 8비트 3채널. mask: 입출력
영상의 형태를 표현하는 일련의 실수값특정 함수 집합과의 상관 관계(correlation) 형태로 계산Geometric moments, Central moments, Normalized central moments, Legendre moments, Complex mome
입력 영상에서 (작은 크기의) 템플릿 영상과 일치하는 부분을 찾는 기법입니다.템플릿: 찾을 대상이 되는 작은 영상. 패치(patch)입니다.• image: 입력 영상. 8비트 또는 32비트.• templ: 템플릿 영상. image보다 같거나 작은 크기, 같은 타입• m
Classifying a detected object into different categories여러 개의 클래스 중 가장 유사한 클래스 선택Consolas 폰트로 쓰여진 숫자 영상을 digit0.bmp~digit9.bmp로 저장됩니다.숫자 영상의 크기는 100 x