반응형 분류 전체보기111 [OpenCV] 이미지 히스토그램 - calcHist 작은 픽셀이 모여 하나의 이미지를 이루고 있다. 각 픽셀은 R, G, B 값을 가지고 있다. 각 8바이트 0~255 숫자 중 하나의 값을 지닌다. 컬러 이미지에서 이미지 히스토그램은 상에서 각 R, G, B값의 분포를 나타낸다. GrayScale에서는 grayscale의 분포를 나타낸다. 관찰 데이터의 빈도수 - 히스토그램을 활용하면 데이터의 확률분포를 추정할 수 있다. - 히스토그램은 이미지 픽셀 분포에서 매우 중요한 정보를 ㅈ공 - 히스토그램을 활용하면 다음 작업이 가능하다. 1) 화질 개선 - 히스토그램 이퀄라이제이션 2) 히스토그램 비교, 역투영 hist = cv2.calcHist(images=[image], channels=[i], mask=None, histSize=[histSize], ran.. OpenCV 2023. 1. 10. [표뽑] OCR - 표 인식 (feat. Naver CLOVA OCR) 본 자료는 2023년 1월 8일 기준이다. 표 인식 기능을 활용하기 위해서, 네이버 Cloud Platform내에 CLOVA OCR을 활용해보도록 한다. 전체 Step은 다음과 같다. 1. Naver CLOVA 가입 -----------------------------------------------여기부터는 콘솔이라는 곳에서 행해진다. 2. CLOVA OCR 사용 신청 → 도메인 생성 3. API Gateway 사용 신청 4. Clova OCR → 도메인 → Text OCR 클릭 → 자동연동→ Postman등 request보낼 수 있는 곳에서 test 진행. ** 막상 일부 진행하고 나니, 굳이 표로 인식할 필요는 없는 것 같다. text로 인식하는게 더 저렴하기도하고, 그정도만 해도 충분할 듯 하다... 프로젝트/표뽑( 표를 뽑아본다.) 2023. 1. 9. [OpenCV] 이진화(Binarization, thresholding) 이진화, 사진을 두가지(흑, 백)으로만 분류하는 것입니다. 이진화는 왜 할까? 경계값을 기준으로 이진화시키면 물체가 뚜렷해지기 때문이다. - 이진화 input : 임계값, 최댓값 * cv2.THRESH_BINARY옵션에서 임계값이하의 pixel은 rgb = (0,0,0) =검정으로 변환되며, 임계값 초과의 pixel은 설정한 최댓값으로 변환된다. image =cv2.imread('./sampleData/sample2.jpg', cv2.IMREAD_GRAYSCALE) # 이미지 파일 불러오기. divider = 4 dst = cv2.resize(image, dsize=(int(image.shape[1]//divider), int(image.shape[0]//divider)), interpolation=cv.. OpenCV 2023. 1. 7. [Open CV] 이미지 다루기- imread, imshow, waitkey, resize 최종적으로 테이블을 엑셀로 변환작업을 진행하려 합니다. imread : 이미지 읽기. 이미지 파일은 Numpy Array형태로 값들이 넘어오며 각 숫자가 해당 위치의 색을 의미한다. image =cv2.imread('./sampleData/tablesample.jpg', cv2.IMREAD_GRAYSCALE) # 이미지 파일 불러오기. cv2.imshow("image", image) # 윈도우에 이미지 보여주기. cv2.waitKey(0) # 키보드 입력 대기. * 불러올 수 있는 이미지 파일 format .png, pbm, .ppm, pxm, pnm, bmp, jpeg, jpg, jpe, jp2, webp, pfm, sr, ras, exr, hdr, pic, tiff, tif * 이미지 불러오는 옵션 .. OpenCV 2023. 1. 7. [개념] Proxy 프록시 서버 : 대신하는 것. 프록시(proxy) 서버 : 클라이언트나 서버의 요청을 대리해서 처리하는 서버 프록시 서버는 클라이언트와 서버가 요청과 응답을 주고 받는 사이에서 요청 또는 응답을 대신 처리한다. 포워드 프록시 : 클라이언트 측에서 활용( 보안, 속도 Good) 리버스 프록시 : 서버에서 활용(보안, 속도 Good, 부담분산- 로드 밸런싱..) Insight - 사내에서 외부의 특정 사이트에 접근이 불가능 하다. 회사는 보안을 위해서 다양한 client(ex 내 컴퓨터)의 요청을 하나의 proxy에서 처리한다. client가 요청한 홈페이지가 proxy서버에서 허용한 list에 포함되지 않는다면, 접근을 제한한다. 개념 2022. 12. 27. [Spring] Spring boot - Properties Spring boot properties : 스프링 부트 기본 기능 전체를 튜닝하는 부트 전용 설정 프로퍼티 - classpath : application.properties, application.yml로 제어 가능. - 부트 기능 거의 대부분을 제어 - 기본값이 세팅되어 있어서 아무것도 쓰지 않아도 동작함. - 경로 : root>resource>application.properties Configuration과 동일한 동작을 한다. 다음은 동일한 동작을 하는 configuration파일과 application.properties이다. application.properties는 Configuration에 비해 간단하게 처리가능 할 수 있으나, configuration은 더 복잡한 로직을 처리할 수 있다.. WEB/SpringBoot 2022. 12. 27. [코딩테스트] 프로그래머스 : 주식가격 문제 설명 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. [1, 2, 4, 3, 2] ->[4, 3, 1, 1, 0] 3초-> 4초 : 주식의 가격이 4-> 3으로 떨어진다. 즉, 1초간은 떨어지지 않았다고 볼 수 있으므로 1 4초-> 5초 : 3-> 2 => 1 [1, 5, 9, 3, 1] ->[4, 2, 1, 1, 0] 2초-> 4초 : 주식 가격 5-> 9-> 3, 즉, 2초간은 떨어지지 않았으므로 2 def solution(prices): answer = [] for i, j in enumerate(prices): ans = 0 for k in range(i+1, len(.. 코딩 테스트 2022. 12. 5. [코딩테스트] 프로그래머스 : 프린터(python) 문제 설명 프린터에서 지정한 작업이 몇번째로 출력되는지 알아내야한다. 리스트에서 가장 큰 숫자가 먼저 프린트 되고 하나씩 왼쪽으로 밀린다. 먼저, 현재 List에서 최대값을 알아내야한다. 이를 위해 max라는 함수를 구현. list를 받아서 max값을 리턴한다. 시간복잡도는 O(n) def max(lst): mx=0 for i in lst: if(i>mx): mx=i return mx 1) pop하는 요소의 값이 max이면 출력한다. 2) 해당 값이 우리가 출력하고 싶은 값(location)이라면, 결과(answer)를 출력하고 종료한다. 3) pop한 값이 max가 아니라면 --> 오른쪽 끝에 더하여 준다. def solution(priorities, location): answer=0 val = pr.. 코딩 테스트 2022. 11. 30. [코딩테스트] 프로그래머스 : 위장, Counter 사용법 의상의 조합을 찾는 문제. 상의 : 셔츠, 티, 아우터 하의 : 바지, 치마, 칠부 와 같이 있다면, 총 조합의 수는 ('상의 수'+1) * ('하의 수' + 1) -1 현재 python의 문법을 잘 모르기에 차근차근 풀어보았다. 매우 쉽긴하다.. 먼저, dict에 list로 담아서 풀어 보았다. def solution(clothes): size = len(clothes) dict = {} for i in range(size) : clothe = clothes[i] if clothe[1] in dict: dict[clothe[1]].append(clothe[0]) else: dict[clothe[1]] = [clothe[0]] answer = 1 for key in dict: print(dict[key].. 코딩 테스트 2022. 11. 30. 경조사 관리자 개발일지 ---------------------todo--------------------- 2022년 11월 29~30일 1. 연락처 불러오기 기능 추가를 위한 학습 - Contacts Contract, 컨텐츠 제공자 등등 2022년 12월 1일 1. 기능 구현 ----------------------------------------------------done-------------------------------------------------------------- 2022년 11월 24일 1. 내역 검색 기능 - 이름, 그룹으로 검색 가능 - 1) 이름으로 먼저 검색 - 2) 이름 검색 결과가 없다면 그룹으로 검색 ㄱ 2022년 11월 27일 1. 나의 경조사 관리 : DB에서 가져오기(local db).. 프로젝트 2022. 11. 27. [안드로이드] 안드로이드 스튜디오 : Git Push오류 발생 Invocation failed Unexpected end of file from server이 발생한다면..? 더보기 Invocation failed Unexpected end of file from server java.lang.RuntimeException: Invocation failed Unexpected end of file from server at git4idea.GitAppUtil.sendXmlRequest(GitAppUtil.java:30) at git4idea.http.GitAskPassApp.main(GitAskPassApp.java:58) Caused by: java.net.SocketException: Unexpected end of file from server at java... 안드로이드 2022. 11. 21. [안드로이드] mobile navigation : popUpTo, popUpToInclusive, 이전 Fragment 중복 안되게 설정 상세내역 화면 → 편집 → (편집완료) → 상세내역 화면(편집된 내용으로) 과 같은 기능 구현에 있다. navigation은 아래와 같다. 문제는 편집을 끝내고 돌아와도 이전 fragment가 stack에 그대로 남아 있다는 것이다. 상세내역 화면 → 편집 → (편집완료) → 상세내역 화면(편집된 내용으로) 편집이 완료된 시점에서 상세화면 2로 넘어가고, 상세화면1과 편집화면을 stack에서 날려야한다. 이 때, 편집화면 → 상세화면 으로의 action에서 0. popUpTo : 상세화면으로 설정. 현재 action이 발생하는 fragment가 stack에서 제거된다. 1. popUpToInclusive : false로 설정 popUpTo : 상세화면으로 설정 2. popUpToInclusive : tr.. 안드로이드 2022. 11. 18. 이전 1 ··· 4 5 6 7 8 9 10 다음 반응형