카테고리: openCV

0

openCv page Dewarp 그림책인지 텍스트 책인지 구분 방법

개요현재의 이미지 처리 방식은 text을 기준으로 책을 피는 알고리즘을 사용하였습니다. 하지만 그림책의 경우에는 글자가 부족하고 그림의 특정부분을 윤곽선으로 인식하여 책을 제대로 펴지 못합니다. 그렇기 때문에 텍스트 기반의 책이 이미지와 그림 기반의 책의 이미지의 처리방식은 달라져야 합니다. 일단 이 포스트에서는 이미지가 텍스트 기반인지 그림 기반인지 어

0

openCv page Dewarp remapping을 이용한 가장자리 보정

개요저번 포스트에서는 remapping이 어떻게 이루어 지는가와 사다리꼴 결과물 보정에 대해서 분석해 보았습니다. 사다리꼴 결과물 보정에서는 가장자리의 선을 찾아 그 끝점으로 이미지를 와핑하는 방법을 사용하였습니다. 하지만 아래와 같이 그림책의 경우에는 선이 너무 많고 가장자리의 선을 못찾는 경우가 발생하였습니다. 이미지 보정 전을 보면 눈으로는 가장자리

0

openCv page Dewarp remapping 분석

개요해당 작업은 최적화 작업 후 기울기 α, β를 취득 한 후 어떻게 이미지가 remmaping 되는가에 대한 설명이다. get_page_dimsget_page_dims 전체 소스12345678910111213141516def get_page_dims(corners, rough_dims, params): dst_br = corners[2].flatte

0

openCv page Dewarp 사다리꼴 결과물 보정

개요이미지 디워핑을 하다보면 가끔 이미지의 가장자리 부분이 잡아 끌려와서 이상하게 처리되 사다리꼴이 된 모습을 볼 수 있다. 이와 같이 노이즈가 경계면에 있는 이유는 마스킹 때 이미지를 벗어난 좌표까지 기준으로 했기 때문에 그렇다. 위 그림처럼 페이지를 새로 만들 부분을 이미지 경계면에서 벗어난 오른쪽 부분까지 지정한 것을 볼 수 있다. 그림에서는 이미

0

openCv page Dewarp 중심이론 설명

개요구부러진 책을 펴기 위해서는 몇가지 모델링 및 가정이 필요합니다. 간단한 요점은 다음과 같습니다. 3D상의 책은 높이(z) 0에 놓여 있는 평평한 종이라고 가정합니다. 가정한 3D상의 좌표를 기준으로 회전벡터(r), 평행이동벡터(T)를 구합니다. 책의 구부러짐을 3차원 방정식으로 표현된다고 가정합니다. 3차원 방정식은 f(0)=0, f(1)=0 으로

0

openCv page Dewarp 책 반으로 자르기

개요기존 소스는 책의 이미지가 반으로 잘린 것을 기준으로 동작하였습니다. 이번 포스팅에서는 책의 이미지를 반으로 자르는 것을 구현하는 것에 대해서 설명하겠습니다. 구현123456789101112131415161718192021def cut_half(img): height, width = img.shape[:2] gray = cv2.cvtColo

0

openCv page Dewarp 동적 마스킹

개요동적 마스킹이란 기존 소스에서 하드 코딩값으로 가장자리의 부분을 잘라냈던 것을 텍스트 인지를 통해 동적으로 자르는 것을 목표로 합니다. 결과는 다음과 같습니다. 위의 알고리즘은 기존소스의 mask를 구하기 전에 먼저 spans를 구하고 거기에 따른 x,y 좌표의 최대 최소값을 구해 적용하는 것입니다. 구현12345678910111213141516171

0

opencv 윤곽선(Contours)값의 의미(내용) 최대값 최소값 구하기

윤곽선(Contours)이란영상이나 이미지의 윤곽선(컨투어)를 검출하기 위해서 사용합니다. 윤곽선은 외곽 뿐만 아니라 내곽도 검출 가능합니다. 컨투어(contour)란 동일한 색 또는 동일한 픽셀값(강도,intensity)을 가지고 있는 영역의 경계선 정보입니다. 물체의 윤곽선, 외형을 파악하는데 사용됩니다. 윤곽선 검출윤곽선의 검출 과정은 cv2.fin

0

openCv page Dewarp 분석 -7

이번 포스트는 굴곡을 펴기 위해서 cv2.solvePnP를 사용하는 것을 알아보겠습니다. get_default_paramssolvePnP 함수는 영상을 획득한 카메라의 위치 및 방향 (camera pzose)을 알아낼 때 유용하게 사용할 수 있습니다.카메라 내부 파라미터 행렬 K와 3D 월드좌표 - 2D 픽셀좌표 매칭쌍들을 입력으로 주면, 카메라 외부 파라

0

openCv page Dewarp 분석 -6

저번 포스트에서는 윤곽선을 합치는 것에대해서 살펴보았습니다. 이번 포스트에서는 키포인트 검출에대해서 살펴보겠습니다. sample_spans1span_points = sample_spans(small.shape, spans) sample_spans 함수로 앞서 만들었던 선(span)에서 포인트가 되는 부분을 생성합니다. input으로는 이미지의 차원 정보(