본문 바로가기

전체 글

(253)
[OpenCV] 답지 문제별로 자르기(1) 목표) 문제집 답지의 특정 페이지를 넣으면 각 문제별로 크롭하여 저장하기 input : 수능완성 답안지(png) output) (10번이전 일부 문제 포함) 10번 ~21번(약간 잘림) 까지의 이미지 아이디어) 1. 전체 페이지에서 윗단과아랫단 제거 -> 문제영역만 남기기 (trim이용) 2. 페이지를 왼쪽 부분과 오른쪽 부분으로 나눔 -> 중앙 라인 제거 * issue 1) 왼쪽과 오른쪽 부분의 가로 크기는 같아야 할 것 issue 2) 홀수 페이지와 짝수 페이지의 중앙 선 부분의 위치가 다름 3. "답" 이미지를 중심으로 일정 여백을 더하여 해당 부분을 자르면, 모든 문제에 대해서 잘라낼 수 있음 * issue) 페이지의 맨 하단에 있는 "답"이미지가 없는 부분(문제의 시작부분 끝부분은 다음페이지에 ..
[OpenCV] 이미지에서 특정 이미지 찾아내기 답지에서 해당 답의 영역만을 추출하기 위해서는 다음과 같은 "답"이라는 이미지를 답지 페이지내에서 찾아낸 후 해당 이미지를 기준으로 그 아래를 자르면 된다 그래서 일단 이번 게시글에서는 이런 답지의 페이지 내에서 다음과 같이 "답"이라는 이미지를 전부 찾아내는 것을 목적으로 한다 1. 찾아내길 원하는 이미지 크롭하기 먼저 이 이미지를 따로 만들어내야 한다 주의할 점은 위와 같은 찾아내려는 목적이미지를 절대로 캡쳐 해서는 안되고 원본이미지(답지이미지)에서 그 부분("답")을 잘라내야 한다는 점이다. 잘라내는 방법으론 여러가지 방법이 있지만 그냥 자르는 사이트를 이용해서 잘라냈다 www.iloveimg.com/ko/crop-image 이미지를 신속하게, 무료로 잘라내세요! JPG, PNG, GIF 파일을 신..
[OpenCV]문제지에서 문제 크롭(2) 아이디어) 전체 이미지에서 윗단과 아랫단을 제거 한 후 (문제영역만 남김) 페이지를 왼쪽부분과 오른쪽 부분으로 나눈 후 (1)글에서와 유사하게 진행하면서 kernel사이즈의 x size를 충분히 키우면 검출해 낼 수 있을 것 1. 이미지 tirm : imtrim함수 #수능완성 page trim def imtrim(page): x=300 w=1120 left = page[465:3450, x:x+w] x=1480 right = page[465:3450,x:x+w] return right,left 아랫단과 윗단을 제거한 후 페이지를 오른쪽 부분과 왼쪽 부분으로 나눔 그 후 right, left라는 변수에 저장한 후 return함 결과) 2. 이미지 전처리 + 외곽추출 + 일반화 : contour함수 #반페이..
[OpenCV]Morphological Transformation Morphological Transformations Theory Erosion : 제거 Dilation : 확장 Opening : Erosion → Dilation Closing : Dilation → Erosion Function cv2.erod() : Erosion cv2.dilate() : Dilation cv2.morphologyEx() : Opening / Closing (매개변수를 이용하여 무엇을 선택할지 지정) structing element 원하는 이미지를 스캔하여 특정 부분에 대하여 "Erosion/Dilation/Opening/Closing" 할 때 사용할 kernel(filter)을 만들어 줌 cv2.getStructuringElement(shape,ksize) cv2.getStru..
[OpenCV] 문제지에서 문제 크롭(1) 목표) 문제집의 특정 페이지를 넣으면 문제만 크롭해서 저장하기 input : 수능완성 페이지 (png) output) 24~29번까지 문제 별개로 크롭된 이미지 이미지를 크롭하기 위해서는 이미지 단순화, 제거, 보정을 통해 형태를 파악해야하기 때문에 OpenCV에서 제공하는 Morphological Transformations 기능을 이용해야한다 아래글을 먼저 참고해서 숙지해야함 iagreebut.tistory.com/73 [OpenCV]Morphological Transformation Morphological Transformations Theory Erosion : 제거 Dilation : 확장 Opening : Erosion → Dilation Closing : Dilation → Erosion ..
[OpenCV] 이미지 이진화 이미지 불러오기 def contour(): #이미지 imgfile = '/gdrive/MyDrive/cropStudy/problem.png' #원본 이미지 img = cv2.imread(imgfile) 이미지를 흑백으로 만들기 이미지를 흑백으로 만들어주면 연산량이 적고, 흑백이미지도 edge detection에 무리 없기 때문에 진행하는 과정 cvtColor : 이미지의 색 변경 #흑백 이미지 imgray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) cvtColor : 이미지의 색을 변경해주는 함수 cvtColor(image : 변경할 이미지 파일 경로 , flag : 어떤방식으로 변경할지 ) 정확하게 말하면, 이미지의 색 공간을 바꾸는 함수이며 flag는 어떤 색 공간으로 바..
[OpenCV]이미지 읽기,출력,저장 OpenCV를 이용하여 이미지 읽어오기, 쓰기(출력),저정하기 구글 코랩사용 ProjectStudy>yj>crop> OpenCV이미지읽기_쓰기_저장하기 , 이미지 저장.ipynb OpenCV는 RGB가 아닌 BGR을 사용 ( 순서를 변경해야함 ) -> imshow / imwrite참고사이트 참고 사용 라이브러리 import numpy as np import cv2 #openCV package OpenCV 패키지인 cv2를 import 이미지 읽어오기 imread() : 이미지 읽어오기 def handle_image(): #이미지 읽어오기 imgfile = '/gdrive/MyDrive/cropStudy/sample.JPG' img = cv2.imread(imgfile, cv2.IMREAD_COLOR) #..
배트맨 메탈 순서/Reading order 보호되어 있는 글입니다.

728x90