Keras의 Backend로 Tensorflow를 선택했기에 Tensroflow와 Keras를 설치해보자.이 부분은 가상환경을 만들어서 설치하는 방법도 있고, 바로 때려박아서 설치하는 방법이 있는데 가상환경을 만들어 사용하는 것을 주로 추천한다.그러나 필자는 그냥 설치하는 방법으로 수행하였다. 또한 라즈베리파이 STRETCH 버전을 깔게 되면 Python 2 ( 2.7 ) , Python 3 ( 3.5 ) 버전이 설치되는데 3 버전에서는 Tensorflow 설치가 문제가 있어서 Python 2를 통해 설치를 진행한다.PIP인 파이썬 패키지 관리자를 사용하며, pip 는 python 2 전용, pip3 는 python 3 전용 관리자이다. 1) sudo apt-get install libblas-dev2)..
분류 전체보기
이전 글에서 라즈베리파이3의 기본 설정법을 알아보았으니 이제는 개발 환경을 구축해본다. 1. QT5 + WiringPi + Raspicam + OpenCV_3.4.0 설치사실 각각을 설치하는 방법은 여러가지이며 특히 Opencv의 경우 설치 과정이 매우 까다롭다. 라즈베리파이를 몇번 지웠다 깔았다 하면서 위 과정을 설치하는게 귀찮아서 데비안 패키지를 만들었다. 첨부된 파일을 라즈베리파이에 넣고 아래와 같은 순서로 진행하여 설치하자. 1) sudo apt-get update2) sudo apt-get upgrade3) sudo apt-get install gdebi-core4) 첨부된 파일이 있는 곳에서 sudo gdebi opencv_installer 많은 라이브러리를 설치해야 하기 때문에 약간의 시간이..
라즈베리파이3, 라즈베리파이 카메라 v2, OpenCV, Tensorflow, Keras 를 이용해서 개발하는 일이 생기는 바람에 삽질하며 공부한 내용을 정리해본다. 준비물라즈베리파이3라즈베리파이 카메라SD 카드 32GBSD 카드를 읽고 쓸 수 있는 usb 1. 라즈베리파이3에 라즈비안 운영체제 설치https://www.raspberrypi.org/downloads/raspbian 접속해서 Desktop 또는 Lite 버전을 받는다. 어떤 버전이든 상관 없지만 코딩하고 결과확인의 편리함을 위해서 Desktop 버전을 받았다. 2. SD 카드에 1. 에서 받은 이미지를 Writing 해보자.http://B.https://sourceforge.net/projects/win32diskimager/ 사이트에 접..
이전 글에서 ( http://nextus.tistory.com/14 ) 이미지 정보를 Mat 데이터타입에 저장하여 그 속에 어떤 값들이 들어있는지 대략적으로 확인하였다.이번에는 좀 더 자세히 Mat의 픽셀 정보에 대해 알아본다. Mat 데이터 출력Mat 자체를 그대로 cout을 통해 출력하면 픽셀 데이터 값들을 확인할 수 있다. 예제로 512 x 512 Lena 이미지를 사용하여 픽셀 데이터를 출력해본다. 해당 출력결과를 보기 전에 소스를 보면, 원본 Lena 파일은 3채널의 영상이며 512 x 512 픽셀 크기를 가지고 있어 이를 출력하려면 512 x 512 x 3 개수의 값들이 출력되기에 범위를 지정하여 확인해보았다. Mat grayRoi = grayImage(Rect(5, 5, 5, 5)); 이 부..
Class Matopencv에서 가장 기본이 되는 데이터 타입으로 행렬(Matrix) 구조체이다.class CV_EXPORTS Mat { public: // ... a lot of methods ... ... /*! includes several bit-fields: - the magic signature - continuity flag - depth - number of channels */ int flags; //! the array dimensionality, >= 2 int dims; //! the number of rows and columns or (-1, -1) when the array has more than 2 dimensions int rows, cols; //! pointer to ..
1. cvtColor : 영상 타입 변경cvtColor(imgFrame2Copy, imgFrame2Copy, CV_BGR2GRAY);2. GaussianBlur : 가우시안 블러GaussianBlur(imgFrame1Roi, imgFrame1Roi, Size(1, 1), 0); GaussianBlur(imgFrame2Roi, imgFrame2Roi, Size(9, 9), 0);3. Threshold : 이진화threshold(imgDiff, imgThresh, 30, 255, THRESH_BINARY); // 임계치 수동 지정 = 30 threshold(imgDiff, imgThresh, 0, 255, THRESH_BINARY | THRESH_OTSU); // OTSU 방법 -> 주변 값들을 통해 최적의..