OpenCV를 활용한 이미지의 유사도 비교에서 먼저 피처 매칭을 살펴봤다. 오늘은 히스토그램 비교를 알아보도록 하자. 히스토그램은 매개변수에 따라 Correlation, Chi-square, Intersection, Bhattacharyya 각각의 결과값을 가질 수 있다. 그래서 중요한 부분이 각각의 결과값을 어떻게 해석하는 것이다. Correlation과 Intersection은 값이 클수록 유사한 것이고, Chi-square와 Bhattacharyya는 값이 작을수록 유사한 것으로 판단한다. Comparing Histogram 먼저 전체 소스를 살펴보면 다음과 같다. 마찬가지로 C로 구현되어 있는 Histogram 소스를 자바로 변환한 것이다. package kr.co.acronym; import j..
존스 홉킨스 대학의 로저 펜(Roger, D. Peng) 교수의 R 프로그래밍 강좌의 프로그래밍 테스트를 한글로 옮겨본다. R 프로그래밍을 배우는 사람들은 한번씩 테스트 해보기 바란다. 데이터 데이터는 다음 링크에서 다운로드 하면 된다. 문제 - 오염된 값을 모두 측정한 경우의 수 계산 지정된 디렉토리의 파일들을 읽어서, 각 파일 내에 "sulfate"와 "nitrait"값이 모두 측정된 경우의 수를 계산하는 함수를 작성한다. 함수의 결과값으로 반드시 데이터 프레임을 리턴하도록 한다. 첫번째 칼럼은 파일 이름, 즉 모니터링 아이디(ID) 값으로 하고, 두번째 칼럼은 오염된 값을 모두 측정한 수로 한다. 함수의 프로토타입은 다음과 같다. complete
OpenCV의 설치와 자바 프로그래밍 테스트를 살펴봤으니, 이제 이미지 유사도 비교를 해보도록 하자. OpenCV를 활용한 이미지의 유사도 비교는 히스토그램 비교, 템플릿 매칭, 피처 매칭의 세 가지 방법이 있다. 오늘은 이 중에서 피처 매칭(Feature Matching)을 알아보도록 하자. Feature Matching 먼저 전체 소스를 살펴보면 다음과 같다. 일반적으로 C로 구현되어 있는 Feature Matching 소스를 자바로 변환한 것이다. package kr.co.acronym; import org.opencv.core.Core; import org.opencv.core.CvType; import org.opencv.core.DMatch; import org.opencv.core.Mat; ..
존스 홉킨스 대학의 로저 펜(Roger, D. Peng) 교수의 R 프로그래밍 강좌의 프로그래밍 테스트를 한글로 옮겨본다. R 프로그래밍을 배우는 사람들은 한번씩 테스트 해보기 바란다. 데이터 본 예제에서 사용하는 데이터를 다음 링크에서 다운로드 한다. 압축을 풀면 332개의 CSV 파일이 specdata 폴더에 존재한다. 미국의 332개 지역의 공기 오염 상태를 모니터링하는 데이터로서, 각각의 파일에 모니터링 지역의 ID 값을 가지고 있고 그 ID 값으로 파일 이름을 사용하고 있다. 각 파일의 내부에 포함된 내용은 다음과 같다. Date: the date of the observation in YYYY-MM-DD format (year-month-day)sulfate: the level of sulfa..
일반적으로 DB에서 특정 단어가 포함된 레코드를 찾기 위해서 LIKE 를 주로 사용한다. 그러나 LIKE는 '%단어%'와 같이 사용할 때, 인덱스를 사용하지 않기 때문에 속도가 느려진다. 또한 LIKE를 여러 필드 (예를 들어, title과 keyword 등)에 동시에 적용하면서 여러 단어를 검색어로 전달하면 쿼리가 복잡해지기도 한다. > select * from board > where (title like '%학교%' or body like '%학교%') > and (title like '%취업%' or body like '%취업%'); 이를 대체하기 위해서 정규표현식을 적용할 수도 있다. 그러나 정규표현식도 마찬가지로 인덱스를 거치지 않고 풀 스캔(Full Scan)이 일어나기 때문에 느리다. > ..
R에 대한 기본적인 설명과 한줄 한줄 직접 실행하면서 배울 수 있는 패키지가 R에 있다. 바로 Swirl 이다. 사이트를 둘러보니, 학습자 모드와 교수자 모드를 모두 제공하는 듯 하다. Swirl로 R Programming 학습하기 Swirl은 R 버전 3.0.2 이상만 지원하기 때문에 먼저 R을 최신버전으로 업그레이드 해야 한다. 그리고 일반 패키지를 설치하듯이 swirl 패지를 설치한다. > install.packages("swirl") 그리고 swirl 라이브러리를 로드하고 swirl()을 실행해 강의 모드로 들어가면 된다. 이어서 이름을 물어보면, 본인 이름을 쓴다. (여기서는 mini를 적었다.) swirl 모드의 선택이 나오면, 0을 누르면 swirl을 종료하고 빠져나온다. swirl에서 제공..
아이들이 영어 공부하면서 CD를 가져오는데 MP3로 변환해서 스마트폰에 넣어주고 재생하는게 편해서 CD에서 MP3를 추출하는 프로그램을 찾아봤습니다. 그런데, 윈도우 미디어 플레이어에서도 가능하더군요. 윈도우 미디어플레이어 CD를 MP3로 변환 CD를 넣으면 미디어플레이어가 자동으로 실행됩니다. 아래와 같은 화면으로 나오면 우측 상단을 클릭해서 "라이브러리로 전환"을 합니다. 라이브러리 전환해서 상단의 "복사 설정"을 누르고 형식, 오디오 품질 등을 설정합니다. "기타 옵션"에서는 저장할 폴더를 지정할 수 있습니다. 이제 "CD 복사"를 클릭하면 CD의 데이터를 MP3로 변환하게 됩니다. MP3 태그 변환하기 이렇게 다운로드한 MP3 파일의 태그를 한번에 변경하기 위해서 MP3Tag 프로그램을 주로 사용..
어린이들을 위한 애니메이션, 노래 등이 올라와서 인지 아이들이 유투브(YouTube)를 참 좋아합니다. 헬로 카봇이나 터닝메카드의 오프닝 노래를 틀어달라고 하기에 폰에서 아예 MP3로 변환하는 방법을 정리해봤습니다. 웹에서 YouTube MP3 추출하기 유투브에서 MP3를 추출하는 것은 요즘 웹사이트에서 가능하기 때문에 별로 어려움이 없습니다. 아래 웹 사이트에서 유투브 URL을 넣고 변환하기 누르면 바로 "다운로드" 버튼이 나오는 형태가 되는 것이죠.. 가장 쉽게 변환할 수 있는 사이트는 YouTube MP3 입니다. http://www.youtube-mp3.org/ URL 넣어주고 "Convert Video" 버튼을 클릭하면 변환이 완료됩니다. 만약 다양한 타입 (WEBM, MP4, MP3)로 변환하..
OpenCV를 자바 환경에 설정하는 것은 지난번에 살펴봤다. 이번에는 실제 자바 프로젝트에서 프로그래밍하는 방법을 알아보기로 하자. OpenCV 라이브러리를 자바프로젝트에 설정하기 먼저 일반적인 자바 프로젝트를 하나 생성한다. 여기에서는 "Mini"라는 이름의 프로젝트를 생성했다. 환경 설정을 위해 생성된 프로젝트의 "Properties"에 들어가서 좌측의 "Java Build Path"를 선택하고 상단의 "Libraries"를 클릭한 후, 우측의 "Add Library.."를 통해 앞서 설정한 OpenCV를 지정하면 된다. 이어서 "User Library"를 선택한 후, OpenCV-3.0.0을 지정하면 된다. 최종적으로 다음과 같이 라이브러리가 설정된 것을 확인할 수 있다. OpenCV 자바 프로그래..
OpenCV는 2.4.4버전 이후로 자바를 지원하기 시작했다. OpenCV를 윈도우즈에 설정해서 이클립스 기반의 자바 프로젝트로 테스트를 해보도록 하자. OpenCV 3.0 설정 최신 버전의 OpenCV는 3.0으로 윈도우즈, 맥, 리눅스, 안드로이드, iOS등 다양한 운영체제를 지원한다. 우측의 OpenCV for Windows를 클릭하면, opencv-3.0.0.exe 파일을 다운로드한다. 이 파일은 압축 실행파일이라 별도의 설치를 하지 않고 압축만 풀게 된다. OpenCV의 폴더 구조와 자바 버전에서 사용할 jar파일의 위치를 빨간 테두리로 표시해봤다. 압축이 풀린 opencv 폴더를 c:\opencv로 복사하고 시스템 환경변수의 PATH에 다음 사항을 추가한다. C:\opencv\build\x86..