[Linux] cp 명령어와 mv 명령어
1. cp 명령어 : 리눅스에서 파일 복사(copy) 하는 명령어 cp [옵션] [원본] [사본] 옵션 -a: 원본 파일의 속성, 링크 정보들을 그대로 유지하면서 복사한다. -b: 복사할 대상이 이미 있을 경우 기존 파일을 백업하고 복사한다. -d: 만약 복사할 원본이 심볼릭 링크일 때 심볼릭 자체를 복사한다. -f: 만약 복사할 대상이 이미 있으면 강제로 지우고 복사한다. -i: 만약 복사할 대상이 이미 있으면 사용자에게 물어본다. -l: 하드링크 형식으로 복사한다. -P: 원본 파일 지정을 경로와 같이했을 경우 그 경로 그대로 복사된다. -p: 파일의 소유자, 그룹, 권한, 시간 정보들이 그대로 보존되어 복사된다. -r: 원본이 파일이면 그냥 복사되고 디렉터리라면 디렉터리 전체가 복사된다. -s: 파..
2018.08.05
no image
[Linux] 프로세스 확인하기
1. 프로세스 목록 확인 ~$ ps 2. 프로세스 목록 확인 - 자세한 정보 ~$ ps -f 3. 모든 프로세스 리스트 확인 ~$ ps -e ~$ ps -ef 4. 프로세스 목록 배열 및 시스템 자원 사용률 확인 ~$ ps -aux * -aux 옵션으로 확인할 수 있는 프로세스 정보의 각 필드 * 프로세스 상태를 나타내는 STAT 항목 - R(Runable) : 실행 대기 상태 - S(Sleeping) : 수면 상태 - D(inDIskwait) : 입출력을 기다리는 상태 - T(sTopped) : 멈춰 있거나 흔적이 남아있는 상태 - Z(Zombie) : 죽었지만 프로세스에 남아있는 상태 (자원 낭비) * ps [-옵션] - a (All processes) : 프로세스 현황 표시 - u (User) : ..
2018.07.22
[Linux] 프로세스(Process) 및 쓰레드(Thread) 개념
프로세스 및 쓰레드 개념 프로세스란? 프로세스란 단순히 실행 중인 프로그램이라고 할 수 있다. 즉, 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당 받아 실행중인 것을 말한다. 여러 명의 사용자들에 의해 공유되고 있는 응용프로그램은 일반적으로 각 사용자들의 실행단계에서 하나의 프로세스를 갖게된다. 즉, 모든 프로그램은 실행 될 때 하나 이상의 프로세스를 갖는다. 프로세스는 자식 프로세스라고도 불리는 서브 프로세스를 시작시킬 수 있다. 자식 프로세스는 부모 프로세스의 복제로서 부모 프로세스의 자원을 일부 공유하는데, 부모 프로세스가 종료되면 더 이상 존재 할 수 없게 된다. 프로세스는 여러 가지 자원을 사용하게 되는데, 해당 명령을 수행하기 위해 운영체제에 따라 CPU를 점유 할 ..
2018.07.22
[OpenCV] 동영상 저장 및 파일명 지정 (to_string)
오랜만에 올리는 OpenCV 포스팅 사실 기록용이다 동영상 저장 및 파일명 지정하기 (video(1), video(2), ...) 소스코드는 일부 입니다. VideoWriter leftWriter, rightWriter; int codec = CV_FOURCC('P', 'I', 'M', '1'); // select desired codec (must be available at runtime) double fps = cam.camera_capture[0]->get(CAP_PROP_FPS); // frame rate of the created video stream //cout
2017.08.17
no image
[OpenCV] Image Denoising
Image Denoising 영상처리 분야에서 중요한 부분이며 가장 많이 쓰이게 되는 부분중 하나로 이미지 노이즈 제거를 뽑을 수 있겠다. 이미 opencv에 이미지 노이즈를 제거하는 많은 알고리즘들과 함수들이 존재한다. 그 중 알아볼 것은 Non-local means Denoising 알고리즘이다. 이 전에 나왔던 기술들인 Gaussian blurring, Median Blurring 등과 같은 많은 이미지 평활화 기법을 보았으며, 노이즈가 조금 있는 영상에 대해 어느정도 효과를 보일 수 있었다. 또한 이러한 기능에서 각 픽셀 주변 작은 이웃 화소를 통해 중심요소를 대체해버리는 등 가우시안 기법, 평균, 중앙값 등을 이용한 연산을 수행해 왔다. 즉, 픽셀에서 노이즈 제거는 그 근처에 국한되었다는 것이다..
2017.02.16
no image
[OpenCV] Bilateral Filter 적용하기
Bilateral Filter OpenCV에서 대표적인 필터로는 blur, GaussianBlur, medianBlur 그리고 BilateralFilter 가 있다. 이 필터는 선형으로 처리되지 않고, 엣지와 노이즈를 줄여주어 부드러운 영상이 만들어지게 된다. 변수의 값이 크면 클수록 픽셀에 미치는 영향이 많아져 가중치가 커지게 된다. bilateralFilter(src, dst, d, sigmaColor, sigmaSpace); src : 입력 이미지 dst : 출력 이미지 d : 필터링에 이용하는 이웃한 픽셀의 지름을 정의 불가능한경우 sigmaspace 를 사용 sigmaColor : 컬러공간의 시그마공간 정의, 클수록 이웃한 픽셀과 기준색상의 영향이 커진다 sigmaSpace : 시그마 필터를 조..
2017.02.15
no image
[OpenCV] SimpleBlobDetector 을 이용한 Blob Detection
OpenCV에 내장되어있는 SimpleBlobDetector() 이용하여 간단한 Blob Detection을 수행해 보았다. 이 클래스는 features2d.hpp 에 내장되어있다. 그리고 Params 변수를 조절하여 원하는 값을 넣을 수 있고, 그 값으로는 다음과 같다. 자세한 사항은 레퍼러스를 참조해 보도록 한다. By color. This filter compares the intensity of a binary image at the center of a blob to blobColor. If they differ, the blob is filtered out. Use blobColor = 0 to extract dark blobs and blobColor = 255 to extract light..
2017.02.08
no image
[OpenCV] pyrMeanShiftFiltering 적용하여 영상분할
pyrMeanShiftFiltering에 의한 피라미드 기반 영상 분할 (color segmentation) 피라미드(Pyrimid) 영상 일단 이 함수를 영상에 적용시키기에 앞서 피라미드 기반 영상분할에 대하여 알아야 한다. 피라미드 생성은 각각 축소와 확대로 나타난다. pyrDown 함수 같은 경우 오리지널 영상에 가우시안 필터링을 한 후, 결과영상 사이즈를 축소한다. 보통 디폴트 값은 가로, 세로 각각을 1/2배 크기로 축소하는 것을 적용한다. 즉 Size((src.cols+1)/2, (src.rows+1)/2)가 된다. pyrUp 함수는 마찬가지로 영상에 가우시안 필터링을 적용하여 주어진 크기로 결과영상을 확대하게 된다. 디폴트는 가로, 세로 각각 2배 크기로 확대하게 된다. 즉 Size(src...
2017.01.17
no image
[OpenCV] MOG2 함수를 이용한 배경추출
안녕하세요 오랜만에 티스토리 포스팅을 해요. 포스팅을 하는 주된 목적이 하루 또는 일주일 동안 공부한 내용을 정리하는 목적 그리고 공유하는 목적으로 썼었는데 요 며칠간 공부만하느라고, 정리를 못했네요. 정리를 안하니 머리에 남는 것도 없고 다시 정리를 하자는 마음으로 포스팅을 오랜만에 해요. 배경추출 알고리즘을 찾던 도중 OpenCV에 내장되어있는 MOG2 함수를 써보게 되었어요. OpenCV 3.1 도큐멘트에 있는 내용을 참고하여 작성하였습니다. MOG2의 기본 원리는 다음과 같습니다. 현재 프레임(currentframe)과 객체를 추출하기 위한 배경 모델(background model)의 차영상(substraction)을 구하여 Thresholding을 하여 foreground mask를 구하는 것입..
2017.01.17
no image
[OpenCV] 간단한 웹캠 영상 띄우기 및 CANNY EDGE
소스코드 (OpenCV 3.0 버전) if(frame_valid) 부분의 try 문에 처리하고자 하는 영상처리 소스를 입력하면 된다. #include "opencv/cv.h" #include "opencv/highgui.h" #include "opencv2/opencv.hpp" #include using namespace cv; using namespace std; int main(int argc, char *argv[]){ VideoCapture capture(0); if (!capture.isOpened()){ cerr frame; } catch (Exception& e){ cerr
2017.01.17
no image
OpenCV contrib 설치 및 Cmake
참고자료 1 : http://m.blog.naver.com/imsujin91/220596347249참고자료 2 : http://kimjuyoung.blogspot.kr/2015/11/window-opencvcontrib-master-install.html참고자료 3 : https://github.com/opencv/opencv_contrib참고자료 4 : http://dongjinlee.tistory.com/entry/%ED%8D%BC%EC%98%B4-OpenCV-ExtraModules%EC%9D%84-windows-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-%EC%84%A4%EC%B9%98%EB%B2%95참고자료 5 : http://neodreamer-dev.tistory.com..
2016.11.14
OpenCV 설치 시 에러 LNK1112
error LNK1112: module machine type 'x64' conflicts with target machine type 'X86' 위와 같은 오류 발생 시 아래와 같은 방법으로 해결 할 수 있었다. 나같은 경우 OpenCV 3.1.0 버전을 설치하는 과정에서 오류가 나서 2번 방법으로 해결할 수 있었다. I wrote a blog entry about this, as I encountered this maddening problem, and finally yanked my system back into working order.These are the things to check, in this order:Check your properties options in your linker s..
2016.11.12