[windows] batch script

1. 디렉토리 목록 조회 @echo off SETLOCAL EnableDelayedExpansion FOR /R %%E IN (SogangComputerVisionLibrary/SCVL/*.h) DO ( set full_path=%%E set file=%%~nxE echo !full_path! »

[Git] Tips

1.basic usage git add -A git commit -m "message" git push origin master 2.git-lfs Github에는 100MB 이상의 파일을 기본적으로 올릴수 없게 되어 있다. 그렇다고 »

[opencv] 동영상 frame count, fps, duration

동영상 파일을 cv::VideoCapture 로 읽으면 헤더정보를 읽어올 수 가 있는데, 이 헤더정보가 실제 데이터와 다른 경우가 종종 존재한다. -_-; 동영상을 열기 전까지 헤더가 올바른지 »

[linux] ubuntu 16.04 KakaoTalk

sudo apt-get install playonlinux -y sudo apt-get install -y wine playonlinux fonts-nanum* wget https://www.dropbox.com/s/rir2z8culy4nv2e/KakaoTalk_Setup.exe PlayOnLinux [설치] → [Install a »

[HTML] Flat UI Free

공식 사이트 http://designmodo.github.io/Flat-UI/ Github https://github.com/designmodo/Flat-UI 1. 설치 git clone https://github.com/designmodo/Flat-UI 아래 사이트에서 설명이 나와있지만, »

[HTML] Syntax highlighting for the Web.

아래의 사이트는 웹에서의 소스코드 하이라이팅을 지원한다. https://highlightjs.org/ 위 라이브러리를 다운받을때, 필요한 언어 목록들도 선택 할 수 있다. https://highlightjs.org/usage/ 에서는 라이브러리 사용법이 »

[linux] screen capture & upload

1. 캡쳐 Shift + PrintScreen 2. 편집 이미지를 다른 프로그램으로 열기를 선택하고, ImageMagick 을 선택한다. 프로세스가 열리면 이미지에 아무곳이나 터치하면 아래와 같이 메뉴가 뜬다. 여기서 Image Edit을 »

[linux][perl] Apache2 설치

apt-get install apache2 -y cd /etc/apache2/sites-enabled vim 000-default.conf 파일 수정 000-default.conf 의 Line 9 을 아래와 같이 바꾼다. 9: ServerName [해당 서버의 »

[linux] 그래픽 드라이버 & CUDA 설치

그래픽 카드 확인 lspci | grep -i VGA 사실 노트북 같은 경우는 저 명령어로 내장 그래픽이 나오는 경우도 있다. NVIDIA그래픽카드가 뭔지 알고 있으면 위는 무시해도 된다. 설정에서 »

[C++] random

난수를 발생시키기 위해서는 아래 3가지가 필요하다. 생성기 엔진 분포기 1. 생성기 난수 생성기는 std::random_device 를 사용한다. (이것밖에 없는듯) 2. 엔진 엔진은 여러가지가 있지만 주목해야 »

[linux] MATLAB

Matlab R2017a Matlab R2017a GoogleDrive 위 링크에서 Matlab을 받아 설치한다. 설치하는 과정은 생략한다. 설치가 완료 되었으면 이제 런처에 아이콘을 등록해야 한다. (그렇지 않으면 매번 터미널에서 실행시켜야 »

[Boost] 설치

Boost 역시 OpenCV 처럼 빌드 할 수 있지만, 아직 까지 딱히 그럴 필요가 없기에 사실 잘 모른다. (OpenCV는 contrib 모듈을 같이 빌드해서 확장 모듈을 쓸 수 »

[Visual C++] MFC CMenu Custom

MFC 에서 CMenu의 색상을 원하는 대로 바꿀 수 있다. https://msdn.microsoft.com/en-us/library/z25as7e5(v=vs.120).aspx 에서 보듯이 CMenu::DrawItem 함수를 오버라이딩 »

[Web][HTML] redirect

HTML에서 바로 해당 경로로 Redirect 하는 소스이다. 웹 프로그래밍에도 쓰일 수 있지만, 바로 링크를 탐색하게 하는 html 파일을 만들때 많이 사용한다. <html> <meta »

[opencv][C#] Bitmap(C#) to cv::Mat

Bitmap 클래스에는 getHbitmap() 이란 함수가 있다. 반환형은 IntPtr 이며, Bitmap 자체의 포인터를 돌려준다.(복사X) 이를 C++ 측에서 인수로 받아 HBITMAP 으로 형변환을 해준뒤 아래의 함수를 호출하면 »

[Visual C++] Visual studio project setting

1. 3rdparty 써드파티 라이브러리를 사용할땐 항상 ($SolutionDir) 에 3rdparty 라는 폴더를 만들고 사용하도록 하자. 전체 솔루션의 구조는 아래와 같다. ($SolutionDir) ┌ 3rdparty │ ├ include │ ├ lib │ │ ├ x64 │ │ └ x86 │ └ bin »

[opencv] extra modules 빌드

이 작업은 꽤 긴 시간이 걸리므로 커피 한잔과 함께 하는걸 추천한다. 1. 설치 준비 CMake 를 다운받아 설치한다. https://cmake.org/download/ opencv 를 github 에서 »

[Visual C++] AllocConsole 함수

OnCreate 등과 같은 함수에 아래의 코드를 넣어서 출력 콘솔을 띄운다. if (::AllocConsole() == TRUE) { FILE* nfp[3]; freopen_s(nfp+0, "CONOUT$", "rb", stdin); freopen_s(nfp »

[C#] 영상 다루기

1. WPF의 System.Windows.Controls.Image 에 이미지 파일 불러오기. 아래의 방법은 프로세스가 파일을 열고 바로 닫는다. //System.Windows.Controls.Image img_main; byte[] buffer = System. »

[Visual C++] 모니터 정보 알아오기

1. 주 모니터 해상도. GetSystemMetrics(SM_CXSCREEN); //가로 해상도 GetSystemMetrics(SM_CYSCREEN); //세로 해상도 2. 전체 모니터 해상도. GetSystemMetrics(SM_CXVIRTUALSCREEN); //전체 가로 해상도 GetSystemMetrics(SM_ »

[c++] get interval time

특정 구간(들) 을 측정하고 싶을때 사용할 수 있도록 구현 하였다. IntervalTime.cpp IntervalTime.h method template<typename T> void StartClock(T param); template& »

[C/C++] dll

1.Predefined macro _CONSOLE 매크로는 하위시스템이 콘솔일때 정의된다. _WINDLL 매크로는 dll프로젝트일때 정의된다. http://stackoverflow.com/questions/7697859/visual-studio-macro-for-checking-configuration-type-exe-dll 이를 이용하면 dll 프로젝트에서 테스트를 위해 main 함수와 »

[Visual C++]Rainbow RGB gradient

아래의 소스는 HSL 색상 모델을 이용해 Rainbow 색상을 찍어내는 코드이다. #include <shlwapi.h> #pragma comment( lib, "shlwapi.lib" ) // needed for the ColorHLSToRGB() function int »

[Atom]동기화

Atom의 Install 화면에서 sync-setting을 검색하여 설치한다. https://github.com/settings/tokens/new 에 들어가서 Github Token을 새로 생성한다. https://gist.github.com/ 에서 Gist Id를 생성한다. »

[visual c++] visual studio theme

Solarized 테마로 Visual studio 2013/2015/2017 를 설정한다. 아래의 색상 테이블을 조금 참조하여 변경하였다. 폰트 산돌미생체(SDMisaeng).ttf 다운로드 Visual Studio 2017 ColorThemeEditor.vsix (2017) »

[c++] template class 타입 제한하기.

c++의 템플릿은 어떤 타입이라도 타입인수로 받을 수 있는데, 이 타입을 특정 타입만으로 제한할 수도 있다. 예를들어 타원의 정보를 담는 클래스 EllipseT를 만든다고 가정해보자 이 클래스는 »

[geometry]다각형 내부에 점이 있는가?

http://stackoverflow.com/questions/2049582/how-to-determine-if-a-point-is-in-a-2d-triangle 소스 코드는 이곳에서 발췌 하였다. 기본 아이디어는 아래 그림에서 시작한다. P0 이 P1과 P2직선 을 넘어서 존재하는지? 넘지 않는지? 를 »

[C++] std::string

1. 문자열의 뒤에서 부터 검색 종종 우리는 어떤 파일이 어떤 디렉토리에 존재 하는지 알 필요가 있다. string::substr 함수를 통해 0번째부터 마지막에 나오는 '/' 까지 »

[C++] dll 의존성 검사

C++ 에서 dll을 만들어 사용하거나 다른 언어에서 사용할때 분명히 경로가 올바르고, 코드를 올바르게 구현 하였음에도 불구하고, 아래와 같은 오류 메세지를 뿜는 경우가 있다. ????.dll'을(를) 로드할 »

[Algorithm]가장 가까운 2의 멱수

BMP 이미지같은 파일 포맷은 가로(width)가 반드시 4bytes 의 배수가 되어야 한다. 이때 발생하는 padding을 계산하기위해, Width 보다 크고 가장 가까운 4의 배수를 찾아야한다. 고등학생 »

[opencv] image rotate

Computer Vision에 관한 글을 쓸땐 항상 예시 사진을 무엇으로 할지 고민하는데 그 점이 좋다. (좋은게 좋은거라고) opencv를 제대로 파질 않았지만, 확실한건 하나 있다. 바로 이미지의 자료형이 »

[API] RPC programming

rpc 설치 sudo apt-get install rpcbind -y 확장자가 .x 인 파일을 하나 생성한다. add.x라는 파일을 하나 만들고 아래와 같이 입력한다. add.x struct Numbers{ int »

[Windows] 확장자 일괄 변경

Windows 시스템에서 확장자를 일괄 변경하는일은 종종 있다. 그때마다 perl로 스크립트를 짰는데, 이제 보니 그럴 필요가 없다. 아래처럼 ren 이란 명령어가 존재한다. (rename 의 약자인듯) ren *.txt »

[C] __noop키워드

이 글을 쓰는 시점 2016년 11월 19일! 2013년 11월 17일에 네이버 블로그에 써논 글을 보았다. 정확히 3년 전인데 내가 3년전에는 이런걸 했구나 하는 느낌... 여튼 __noop »

[Visual C++] 글자의 가로,세로 길이

DC를 이용해 출력될 글자의 크기를 알아내는 방법이다. 해당 DC가 폰트를 가지고 있고, 실제로 출력될때 width, height를 구할 수 있다. GetTextExtentPoint32 함수이다. BOOL GetTextExtentPoint( HDC hdc, // Device »

[C] linux 시간측정 gettimeofday

나는 여태 시간 측정을 할때 clock() 함수를 사용했는데, 지난번 sandbox 를 구현하면서 시간이 잘 측정이 안되길래 Sleep() 를 하는동안은 측정을 못하는걸 대충 알고는 있었다. 리눅스에서 clock( »

[Eigen] C++ template library for linear algebra

Eigen 라이브러리는 웹사이트에 게시된 그대로 선형대수 라이브러리 이다. http://eigen.tuxfamily.org/index.php?title=Main_Page eigenvector 연산 때문에 이 라이브러리를 교수님께서 소개해 주셨다. 고유벡터에 »

[perl] Windows10에서의 cpan

Windows 8/8.1/10 시스템 환경에서는 cpan 에서 모듈 설치가 잘 안된다.그냥 안된다 사실 cpan 은 linux/windows 모두 terminal 에서 cpan install [Module] »

[C] Math Function

C 의 <math.h> 에는 여러가지 수학 함수들이 존재한다. 이들에 관해 간단하게 정리를 해본다. 1. 자연로그를 쓰자. 먼저 간단한 log 함수에 대해 적어본다. log는 »

[C][C++][Perl][Pascal] String Format

특정 자료형 int,double 등을 문자열의 형태로 만드는 작업은 많이 사용되는 작업이다. C언어 는 sprintf 라는 함수를 사용하며 사용법은 아래와 같다. #include<stdio.h> »

[PS] BOJ 11657 타임머신

BOJ-11657 타임머신 https://www.acmicpc.net/problem/11657 본 문제는 시간 C가 음수가 나올 수 있기 때문에, 벨만-포드 알고리즘을 사용해야 한다. 음의 페로가 존재한다면 -1 만 »

[PS] BOJ 1865웜홀

BOJ-1865 웜홀 https://www.acmicpc.net/problem/1865 본래 벨만-포드 알고리즘은 방향그래프에서만 적용가능한 알고리즘이다. 하지만 본 문제에서는 웜홀만 방향이 있다고 설명한다. 따라서 우리는 지점과 지점사이에 가중치가 »

[PS] BOJ 2252 줄세우기

BOJ-2252 줄 세우기 https://www.acmicpc.net/problem/2252 본 문제는 단순히 입력을 인접리스트인 그래프로 만든뒤에, 위상정렬한 결과를 출력하면 된다. solution #include<iostream> #include& »

[PS] BOJ 1707이분 그래프

BOJ-1707 이분그래프 아래의 사이트는 이분그래프를 판별하는 문제이다. https://www.acmicpc.net/problem/1707 본 문제는, DFS 탐색을통해 Vertex를 색칠해가면서 색칠이 완성되면 이분그래프임을 확인하는 문제이다. 이분그래프 알고리즘에 »

[Algorithm] Topological Sort

topological sort 위상정렬(topological sort)이란 일반적인 정렬과는 다르다. 위상정렬은 Graph에서 쓰이는 정렬 기법중 하나이다. 선행 조건은 그래프가 DAG(directed acycle graph)이여야 한다. 쉽게 설명하자면, »

[OSX] 프로그래밍 언어 설치

xcode command-line-tool 설치하기 xcode-select --install gcc 6 버전 https://www.macports.org/install.php 위 사이트에서 macport를 다운받고 설치한다. sudo port selfupdate sudo port install gcc6 »

[Algorithm] Hough Transform Line Detection

[Computer Vision] Hough Transform Line Detection 허프변환(선검출)은 이미지에서 직선을 검출하는 방법이다. 당연히 이미지=Edge를 적용한 이미지 이다. 우리는 기울기가 m , y절편이 n 인 수식을 »

[opengl] 설치

[opengl] glut 설치 windows 에서 opengl 설치 https://www.opengl.org/resources/libraries/glut/ 위 사이트에 들어간다. 아래 사진의 드래그된 파일을 다운받고, 압축을 해제한다. 아래와 같이 »

[opencv] 프로젝트 내장 빌드

[opencv] 프로젝트 내장 빌드 나는 라이브러리 하면, 컴퓨터에 설치하고 사용하는 방식이 더 좋다고 생각했다. ex) perl 의 cpan 같은 방식.. 그런데 이는 상황마다 다른것 같다. 크기가 »

[Atom]기본 설정

https://atom.io/ 에서 다운로드 받아 설치한다. 실행후 ctrl + ,로 설정 탭을 연다. 1. Settings/Core Core Setting -> Ignored Names 에 *.o , *.exe ,*.class, »

[C++] Singleton with multi threading

[C++] Singleton with multi threading C++ 에서 싱글톤 을 구현할때 항상 따라오는 문제는 멀티스레딩의 문제이다. 하지만 대부분이 이 부분을 잘못 이해하고 있는것 같다. 싱글톤 포스팅한 블로그를 »

[Algorithm] K-means

k-means는 Unsupervised Learning 에 속하는 Clustering Algorithm 이다. Unsupervised Learning 은 Training Data에 Label 이 없기 때문에, 비슷한 군집 끼리 분류를 해야한다. 클러스터를 정의하는 방법에는 많은 »

[linux] ubuntu 16.04

JAVA 설치를 제외한 자동 설치 Perl 스크립트. ubuntu16.04init.pl sudo apt-get update && sudo apt-get upgrade -y 설정 -> 소프트웨어&업데이트 -> Download »

[Algorithm] Machine Learing

기계학습은 컴퓨터에게 코딩하지 않은 동작을 배우고 실행할 수 있도록 하는 능력(Arthur Samuel:1959) 이라고 정의 되었다. 어떻때 기계학습이 사용되는가? 이메일 스팸 필터를 생각해보자. 어떤 이메일이 »

[linux] gcc 5 upgrade

Ubuntu 16.04 나 Mint 18에는 기본적으로 gcc5가 설치되어 있다. sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y sudo apt-get update sudo apt-get install gcc-5 g++-5 -y »

[DS] Linkedlist C inplementation

링크드 리스트에 대해 모르는 사람은 이 글을 읽기 힘들 수 있다. 리스트 구현법애 대해 소개하므로, 소스코드가 매우 많이 나오게 된다. 컴공과 학부생 2학년이면 배우는 내용이므로 누구나 »

[Algorithm] Dijkstra

[Graph] Dijkstra 다익스트라 알고리즘은 음의 가중치가 없는 그래프에서 최단거리를 구하는 알고리즘이다. 초기에 다익스트라가 구현한 버전은 O(V^2)의 복잡도를 가진다. 원리는 아래와 같다. 1번 vertex에서 »

[Algorithm] Least Square Method

[Math] Least Square Method 최소 자승법(or 최소 제곱법) 이라고 부르며 이는 여러개의 X,Y 에 대해 이를 만족시키는 함수 f(x)를 찾는 과정이다. 이 »

[Algorithm] Eucludean, Manhattan

Euclidean distance , Manhattan distance 유클리드 거리는 유클리드 공간에서 두 점 사이의 거리를 계산할때 사용된다. 2차원 평면에서 흔히 피타고라스의 정리라고 부르는것과 같다. n차원 직교 좌표계에서 벡터 p, »

[pascal] fgl

파스칼의 RTL중의 generic list인 fgl에 대해 알아보자. 이 유닛에는 크게 2가지가 있다. 먼저 List계열의 클래스들을 알아보자. TFPGList TFPGList 이 클래스는 C++의 템플릿과 비슷한 클래스이다. 내부 »

[pascal] Setlength와 레퍼런스 카운팅

pascal에는 SetLength라는 함수 가 있다. 함수에 하이라이팅을 한것은, pascal에는 프로시저,함수,메소드,프로퍼티 이 4가지를 구분할 수 있어야하기 때문이다. C언어는 함수만이 존재하고,(반환값이 void 여도 함수라고 »

[pascal] 시간측정

uses SysUtils,DateUtils; var D1,D2:TDateTime; begin D1:=Now; {Do Something...} D2:=Now; writeln(FormatFloat('##0.000',MilliSecondsBetween(D1,D2)/1000)); {어차피 MilliSecond 이기 »

[pascal] 기초

pascal 자료형,함수,프로시저,유닛 자료형 함수,프로시저 함수는 반환값이 있는것이고, 프로시저는 반환값이 없는 것이다. procedure {인수는 ; 로 구분하며 동일 자료형의 인수는 콤마로 사용이 가능하다} procedure »

[java] ArrayList

자바의 ArrayList는 Collection Framework의 한 종류이다. C++처럼 operator[]를 지원하면 좋으련만.... E get(int index) 라는 메소드로 첨자접근을 지원한다. 대부분의 기능은 레퍼런스 사이트에 잘 나와 »

[java] Priority Queue

자바역시 C++ 처럼 우선순위 큐가 존재한다. 거두절미하고 소스부터 본다. import java.util.PriorityQueue; /*기본 생성자. 객체의 기본 비교 CompareTo를 사용한다.*/ PriorityQueue<Integer> pq=new »

[java] Random

1. Math.random() Math.random() 은 0~1 사이의 실수를 반환한다. 예를들어 이 값에다 100을 곱한후 int 로 형변환을 해주면 0~100사이의 난수정수를 얻을 수 있다. »

[Delphi] Editor Vertical Line(10.1 Berlin)

[delphi] editor vertical line http://www.cnpack.org/index.php?lang=en 위의 사이트로 이동하여 CnWizards 를 다운로드 받아 실행한다. (실행중인 델파이는 종료하고 실행한다.) 실행하면 아래와 »

[Delphi] IDE Theme Custom

[Delphi XE8] IDE theme custom 델파이의 기본 환경이 마음에 들지 않는다면 테마를 바꿔서 분위기를 바꿔보자. 먼저 델파이는 2개의 테마변경 프로그램이 있다. 1.IDE-Colorizer IDE의 색상을 바꿔주는 »

[C++11] auto,decltype,array

이번엔 C++11에서 새롭게 나온 auto와 decltype에 대해 알아보자. auto는 타입추론 기능이다. 하나의 자료형으로 볼 수 있으며, 컴파일 타임에 해당 자료형이 결정된다. auto a=5; //a는 »

[C++11] nullptr

C++11에서 새로이 제공하는 nullptr에 대해 알아본다. 식상한 뻔히 다 아는 이야기는 생략하고 싶지만, 이 글로부터 처음 nullptr을 배우는 분들을 위해 소개한다. nullptr 키워드는 c++11에서 »

[C++] infinite

C/C++ 에서의 무한대 infinite 이미지좀 가져올라고 검색했더니 가수 인피니트가 뜬다....짜증난다.. 우선 C++에는 무한대 타입이 존재한다. <limits> 의 std::numeric::limits::infinity( »

[DS] [BIT] Binary Index Tree

이진인덱스트리 흔히 계속 변하는 배열의 부분합을 구할때 FOR i N to M 으로 복잡도 O(n) 으로 구할수도 있겠지만, 이런 자료구조의 궁극적 사용 목표는 빠르게 하기 »

[linux] uid euid??

리눅스 C 라이브러리의 unistd.h에는 getuid , geteuid 가 있다. 이 두 함수의 차이점이 좀 어려운데, 정확하게 알아야 한다. getuid는 get user identification의 약어 함수로 사용자의 uid를 »

[linux] 프로세스를 CPU 코어에 고정

왜 이런것을 하느냐? 나 같은 경우는 Online Judge에서 사용하는 Sandbox가 항상 일정한 속도가 나와야 해서 사용한다. 먼저 ps 명령으로 프로세스의 pid를 알아오자. ps -a 그후 taskset으로 »

[linux] Apache2 install

sudo apt-get install apache2 -y cd /etc/apache2/sites-enabled sudo vim 000-default.conf 1.주석 처리된 ServerName www.example.com 을 ServerName 128.xxx.xxx.xxx »

[PS] 1002~1005, 1007 ~ 1013

problem1002 https://www.acmicpc.net/problem/1002 제곱근 계산이 들어가면 정밀도 때문에 정답을 맞추지 못한다 #!/usr/bin/perl my $t=<>; while($t--){ my $s= »

[PS] BOJ 1006습격자 초라기

DFS + memorized 방법으로 풀면 쉽다. 원형으로 된 배열을 처음과 끝을 분리하여 선형구조로 풀고, 지그재그 형태로 순서를 명시하고 각 원소에 해당되는 최소값을 table에 저장하여 memorized로 풀면 된다. »

[PS] Daejeon 4846 Mines

본 문제는 지뢰를 터트리는데, 최소한 으로 터트려야하는 개수를 출력하면된다. 다음과 같이 지뢰가 있을때, (1) 을 터트리면 (4)도 터지게 되고 (3),(6)도 터지게 된다. 그리고 »

[PS] 2010 Daejeon 4845 Password

본 문제는 각 열(col) 의 중복되는 알파벳을 찾아서 가능한 패스워드 집합중 N번째 원소를 출력하는 문제이다. 입력을 받고, 중복을 제거하고, 정렬을 하면 느리므로, 해싱으로 입력을 받아 »

[PS] 2010 Daejeon 4843 Sales

본 문제는 자신 앞에 자신보다 같거나 작은수의 개수를 모두 출력하는 문제이다. 주먹구구식으로 풀면 O(n^2) 시간에 풀 수 있지만 사실 이 문제는 BIT 문제이다(Binary »

[PS] 2012 Daejeon 6117 Pole Arrangement

입력이 3개가 들어온다. N L R이 들어온다 N은 길이가 전부 다른 막대기의 수이고, L은 왼쪽에서 봤을때 막대기의 개수 R은 오른쪽에서 보았을때 막대기의 개수이다. 본 문제는 가장 »

[PS] 2012 Daejeon 6114 palindrome

본 문제는 N개의 string이 주어졌을떄 두개의 스트링을 조합해 회문을 찾는 문제이다. 간단하게 O(N^2)으로 풀 수 있는데, 가능성이 없는 조합은 제외하는것이 포인트이다. A와 B를 »