no image
[Linux] 프로세스(Process) 및 쓰레드(Thread) 개념
프로세스 및 쓰레드 개념 프로세스란? 프로세스란 단순히 실행 중인 프로그램이라고 할 수 있다. 즉, 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당 받아 실행중인 것을 말한다. 여러 명의 사용자들에 의해 공유되고 있는 응용프로그램은 일반적으로 각 사용자들의 실행단계에서 하나의 프로세스를 갖게된다. 즉, 모든 프로그램은 실행 될 때 하나 이상의 프로세스를 갖는다. 프로세스는 자식 프로세스라고도 불리는 서브 프로세스를 시작시킬 수 있다. 자식 프로세스는 부모 프로세스의 복제로서 부모 프로세스의 자원을 일부 공유하는데, 부모 프로세스가 종료되면 더 이상 존재 할 수 없게 된다. 프로세스는 여러 가지 자원을 사용하게 되는데, 해당 명령을 수행하기 위해 운영체제에 따라 CPU를 점유 할 수 있다. ..
2018.07.22
[Qt] setPixmap 화면 업데이트 안되는 문제
리눅스 환경에서 OpenCV + Qt 를 이용하여 GUI 화면에 동영상을 출력하는 예제 작성 중 preview 라는 라벨에 프레임이 지속적으로 뿌려지지 않고, 마지막 프레임만 뿌려지는 문제 발생 시 즉, 화면이 지속적으로 업데이트 안될 때 (Pixmap 업데이트 충돌시) 코드 추가 QApplication::processEvents(); img = QImage((const unsigned char*)(cvMat.data), cvMat.cols,cvMat.rows, QImage::Format_Indexed8); if (!img.isNull()){ ui->preview->setAlignment(Qt::AlignCenter); ui->preview->setPixmap(QPixmap::fromImage(img)...
2018.07.12
[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
Wrapper 개념
참고자료 1 : http://tip.daum.net/question/175446참고자료 2 : 래퍼클래스 네이버 블로그 공부를 하다보니 라이브러리를 쓰려는데 Wrapper 개념이 나와서 정리해두려고 한다. 어떤 카테고리에 넣을지 고민되서 자료형으로 설명 할 수 있으니까 C & JAVA 카테고리에 적어본다.. 자료형에서의 Wrapper wrapper의 사전적 의미는 '(특히 식품) 포장지'라는 뜻입니다. 여기서 래퍼 클래스는 기본 자료형(primitive data types)에 대한 클래스 표현을 래퍼 클래스(wrapper classes)이다. 기본 자료형에 대해서 객체로서 인식되도록 '포장'을 했다는 뜻인데, 객체라는 상자에 기본 자료형을 넣은 상태로 생각하면 된다. 필요시 컴파일러가 자동으로 수행하기 ..
2017.07.28
[Python] 4. Python 내장함수
출처 : https://wikidocs.net/32 05-5 내장 함수지금까지 파이썬으로 프로그래밍하기 위해 알아야 하는 대부분의 것들을 공부했다. 이제 여러분은 자신이 원하는 프로그램을 직접 만들 수 있을 것이다. 하지만 그 전에 먼저 여러분이 만들고자 하는 프로그램이 이미 만들어져 있는지 살펴보기 바란다. 물론 공부를 위해서라면 누군가 만들어 놓은 프로그램을 또 만들 수도 있다. 하지만 그런 목적이 아니라면 이미 만들어진 것을 다시 만드는 것은 불필요한 행동이다(Don’t Reinvent The Wheel, 이미 있는 것을 다시 만드느라 쓸데없이 시간을 낭비하지 말라). 그리고 이미 만들어진 프로그램들은 테스트 과정을 수도 없이 거쳤기 때문에 충분히 검증되어 있다. 따라서 무엇인가 새로운 프로그램을 ..
2017.07.17
[Python] python에서 opencv를 사용하여 image crop하기
출처 : python에서 opencv를 사용하여 image crop하기 /* * http://sosal.kr/ * made by so_Sal */ 이미지에서 원하는 도형에 해당되는 부분을 찾아, crop을 해보고자 한다.opencv 라이브러리를 사용할 것이다. 이 포스팅에서는 위의 사진에서 네모난 사진들을 crop해볼것이다.네모난 박스를 체크하고 해당 부분을 잘라 저장할 것이다. 1. python opencv library 설치 및 기타라이브러리 설치 python 버전을 확인한다. (3.6 버전) http://www.lfd.uci.edu/~gohlke/pythonlibs/ 사이트에 접속하여 버전에 맞는 opencv whl 파일을 다운받는다. 윈도우즈 64비트와 python 버전 3.6을 사용하고 있기 때..
2017.07.05
no image
[Python] ipython notebook 실행하기
윈도우 환경에서 아나콘다 배포파일을 설치 하고 *.ipynb 파일을 실행시키는 방법이다. 1. 설치를 완료 한 후, 명령프롬프트 실행 (cmd) 2. 테스트 하고자 하는 폴더 경로로 이동 (C:\testing/python) 3. ipython notebook 입력 후 엔터 4. 실행된 Jupyter 에서 실행하고자 하는 *.ipynb 클릭하여 Run (demo.ipynb) 참고로 Jupyter는 머신러닝이나 데이터 분석 용도로 파이썬을 사용하는 사람들이 주로 사용하는 툴로써 가볍고, 코드를 실행하고 수정하기가 간편하다. 또한 notebook 형태로 파일 공유가 가능하다. 다음처럼 notebook 단위로 코드가 관리된다. 우측에 New를 클릭하면 노트북을 만들고 쓸 수 있다. 5. 실행 결과 확인 참고자료..
2017.05.31
no image
[Python] 파이썬 아나콘다(Anaconda) 설치하기 및 환경설정
파이썬 코드를 짜다보니 matplotlib.pyplot, matplotlib.image 라이브러리를 import 해야하는데 자꾸 에러가 떠서 진도를 못나갔다... 2.x 버전과 충돌이 나는가 싶어 모두 삭제도 하고 3.x 버전을 다시 깔기도 했는데 여전히 안되서 뭐가 문젠지 침착하고 곰곰히 생각해봤다. 아나콘다 배포판에는 기본적인 (그래프 그려주기, 이미지 띄우기 등...) 라이브러리들을 포함하여 배포된다. numpy, matplotlib 와 같은... 그런데 왜 안되나 싶었더니 파이썬 버그가 존재했다. 그래서 정리할겸 하는 Python Anaconda 설치 및 환경설정 포스팅 1. Anaconda 통합환경 설치 https://www.continuum.io/downloads Anaconda는 배포판이다...
2017.05.26
no image
[Python] 3. 파이썬의 기본 문법 (3) - matplotlib
파이썬의 기본문법 (1) 파이썬의 기본문법 (2) matplotlib - 딥러닝 실험에서는 그래프 그리기와 데이터 시각화가 중요 - matplotlib은 그래프를 그려주는 라이브러리 - matplotlib을 사용하면 그래프 그리기와 데이터 시각화가 쉬워짐 1. 단순한 그래프 그리기 2. pyplot 의 기능 축이름, 제목 등을 설정 할 수도 있다. 3. 이미지 표시하기
2017.05.25
[Python] 2. 파이썬의 기본 문법 (2) - 클래스, 넘파이, 브로드 캐스트
파이썬의 기본문법 (1) 에 이어 두번째 포스팅이다. 1. 클래스 개발자가 새로운 클래스를 정의할 수도 있다. 즉, 독자적인 자료형을 정의할 수 있다. 또한, 클래스에는 그 클래스만의 전용함수와 속성을 정의 할 수 있다. class 클래스 이름 : def __init__ (self, 인수, ....) : #생성자 .... def 메소드 이름 1 (self, 인수, ...) : # 메소드 1 .... def 메소드 이름 2 (self, 인수, ...) : # 메소드 2 .... init 메소드는 클래스를 초기화 하는 방법을 정의한다. 초기화용 메소드를 '생성자'라고 한다. 클래스의 인스턴스가 만들어질 때 한 번만 불린다. 그리고 메소드의 첫번째 인수로 self 를 쓴다. 자신의 인스턴스를 나타내는 self..
2017.05.24
[Python] 1. 파이썬의 기본 문법 (1)
1, 2, 3, 아니 학부시절까지만 해도 나는 파이썬과 거리가 먼 사람이라고 생각했었는데어느덧 파이썬 포스팅을 하고있다.기본 문법만 가볍게 넘어가려고 한다.C, JAVA, C++ 등을 배우고 파이썬 문법을 접하니 신세계가 아닐 수 없다.그렇지만 전자의 것들을 배우고서 나중에 파이썬을 배웠으면 좋겠다고 생각한다.파이썬은 내가 느끼기로, 쉽고, 간결하며 영어 문장같은 문법으로 이루어져있다.특히나 불편한 컴파일 과정도 없어서 편리하다. 즉, 정리하자면 파이썬은 1. 쉽다2. 간결하다3. 영어문장 쓰는 것 같다4. 불편한 컴파일 과정이 없다.5. 성능이 좋다 (아직 겪진 못했다)6. '넘파이'라는 좋은, 아주 좋은 라이브러리를 포함할 수 있다.7. 딥러닝 프레임워크(Caffe, TensorFlow, Chaine..
2017.05.24
no image
[OpenCV] Image Denoising
Image Denoising 영상처리 분야에서 중요한 부분이며 가장 많이 쓰이게 되는 부분중 하나로 이미지 노이즈 제거를 뽑을 수 있겠다. 이미 opencv에 이미지 노이즈를 제거하는 많은 알고리즘들과 함수들이 존재한다. 그 중 알아볼 것은 Non-local means Denoising 알고리즘이다. 이 전에 나왔던 기술들인 Gaussian blurring, Median Blurring 등과 같은 많은 이미지 평활화 기법을 보았으며, 노이즈가 조금 있는 영상에 대해 어느정도 효과를 보일 수 있었다. 또한 이러한 기능에서 각 픽셀 주변 작은 이웃 화소를 통해 중심요소를 대체해버리는 등 가우시안 기법, 평균, 중앙값 등을 이용한 연산을 수행해 왔다. 즉, 픽셀에서 노이즈 제거는 그 근처에 국한되었다는 것이다..
2017.02.16