본문 바로가기

마크다운 사용법 깃헙 README 문서를 작성하려다 보니 마크다운을 사용하게 되었습니다. Jupyter notebook에서도 사용해보기는 했지만 간단한 제목정도만 작성했었기 때문에 문서작성을 위해 마크다운에 대해 자세히 알아보았습니다. 우선 마크다운이란 무엇인가에 대해 알아봅시다. 마크다운은 2004년 존 그루버가 작성한 언어로 일반 텍스트나 문서의 양식을 편집하는 언어라고 합니다. README 파일이나 온라인 문서, 혹은 일반 텍스트 편집기로 문서 양식을 편집할 때 쓰이며, 마크다운을 이용해 작성된 문서는 쉽게 HTML 등 다른 문서형태로 변환이 가능하다고 합니다. 위키피디아를 참고했습니다. Github의 readme 문서인 README.md 또한 이 마크다운으로 작성이 가능합니다. 그럼 바로 마크다운 문법에 대해 알..
OpenCV 설치하기(Visual Studio 설정하기) 디지털 영상처리 공부를 하고 있는데 윈도우 환경이 필요해서 Visual Studio를 이용해 셋팅을 했습니다. 그런데 할때마다 헷갈려서 블로그에 정리를 해 둡니다. 먼저 OpenCV는 홈페이지에서 다운받을 수 있습니다. https://opencv.org/releases/ Releases opencv.org 저는 교재를 따라가기 위해 3.4.1버전을 다운로드했습니다. 최신버전을 사용하더라도 파일 이름만 잘 구분해주시면 됩니다. Windows에 셋팅할 것이기 때문에 Windows를 클릭하여 다운하고... 실행하여 압축을 풀어줍니다. 별도로 설치하는 건 아니고, 라이브러리만 압축해제되는 것 같습니다. 저는 경로를 C드라이브로 설정했습니다. OpenCV 설치 끝!! 참 쉽죠? ..이긴 한데 사용할려면 IDE마다..
드론을 이용한 식물 이상 탐지 시스템 - DBwindow 구현 마지막 Widget인 DBwindow 구현에 관해 다루겠습니다. DBwindow는 See Datamap 버튼을 누르면 나타나는 Widget입니다. 위와 같이 구성되어 있으며 리스트에서 데이터가 저장된 날짜를 선택하여 See Datamap 버튼을 누르면 Mainwindow에 분석 결과가 출력됩니다. 코드 전문은 아래와 같이 구성되어 있습니다. class DBWindow(Ui_DBwindow): def __init__(self, w3): self.url = "" Ui_DBwindow.__init__(self) self.Dialog = w3 self.setupUi(self.Dialog) self.seeButton.clicked.connect(self.DataSee) self.delButton.clicked.c..
드론을 이용한 식물 이상 탐지 시스템 - Connectwindow 구현 이번에는 Data Receive 버튼을 클릭했을 시 실행되는 Connectwindow 구현에 대하여 포스팅 할 것입니다. Connectwindow는 위와 같이 구성되어 있습니다. 우선, 코드 전문입니다. class ConnectWindow(Ui_Connect): def __init__(self, w2): self.IP = "" self.Port = "" self.workingFlag = 0 self.successFlag = 0 self.ConnectThread = DataRecvThread() self.ConnectThread.connectState.connect(self.connectLog) Ui_Connect.__init__(self) self.Dialog = w2 self.setupUi(self.D..
드론을 이용한 식물 이상 탐지 시스템 - Mainwindow 구현 Mainwindow의 PyQt5 코드 구현에 대해 설명하도록 하겠습니다. 전체적인 Mainwindow의 모습입니다. 버튼 하나하나 코드를 어떻게 구현했는지 알아보도록 하겠습니다. from PyQt5 import QtCore, QtGui, QtWidgets # 위젯 클래스들 from PyQt5.QtWidgets import * # QtWidgets 내부의 함수들 from PyQt5.QtCore import QThread, pyqtSignal # 쓰레드를 이용하기 위해 포함 from ui.mainwindow_ui import Ui_Mainwindow # Mainwindow ui 코드 from ui.connectwindow_ui import Ui_Connect # Connectwindow ui 코드 from ..
드론을 이용한 식물 이상 탐지 시스템 - PyQt5 UI 만들기 이제 Qt Creator를 이용해 PyQt5 UI를 생성하는 방법을 알았으니 Qt Creator에서 모든 .ui파일을 생성하도록 합니다. 먼저 메인 윈도우입니다. 프로그램을 실행시키면 가장 먼저 실행되는 UI 입니다. 어떤 오브젝트를 이용해 만들었는지는 우측의 Class를 보시면 확인하실 수 있습니다. 로그가 표시될 창과 맵이 표시될 창은 QTextBrowser를 이용해 만들었습니다. 각 버튼은 QPushButton을 이용해 만들었습니다. Data Receive를 클릭했을 때 나타나는 connectwindow는 위와 같이 구성했습니다. QLabel을 이용해 IP, Port라는 레이블을 만들었고, 전송중 로그가 표시될 부분을 만들었습니다. QPlainTextEdit을 이용해 IP와 Port번호를 입력할 창..
드론을 이용한 식물 이상 탐지 시스템 - Qt UI 만들기 전 글에도 설명했다시피 PyQt5에 능숙하다면 코드를 이용해 모든 UI를 구현하는 것도 가능합니다. 하지만 코드로 모든 오브젝트를 배치하는 건 불편하기 때문에 Qt Creator를 이용하여 UI를 만든 후, PyQt5로 변환해주는 방법을 사용했습니다. Qt Creator는 Qt에서 제공하는 GUI 제작 플랫폼입니다. GUI 환경에서 UI를 만들고 코드를 제작하는 것이 가능합니다만 Qt는 기본적으로 C++로 제작되어 있기 때문에 Qt Creator에서 모두 구현하려면 C++코드를 이용해야 합니다. 저희는 파이썬 코드로 구현하기 위해 PyQt를 이용했는데, UI를 만드는 것은 Qt Creator로 만든 ui 파일을 변환해서 만드는 것이 가능합니다. 먼저 Qt Creator를 이용하기 위해 Qt를 설치합니다...
드론을 이용한 식물 이상 탐지 시스템 - PyQt5 설치 GUI는 Qt를 이용해 구현했습니다. Qt는 GUI 프로그램 개발에 널리 쓰이는 크로스 플랫폼 프레임워크입니다. Darknet을 이용했기 때문에 결과적으로 윈도우에서는 실행이 불가능하게 되었지만, 리눅스와 맥OS에서 모두 사용 가능하게 하기 위해서 Qt를 사용하도록 했습니다. 기본 언어로는 C++를 이용하지만, 저는 파이썬 코드로 구현하기 위해 PyQt5를 이용했습니다. PyQt5를 설치하는 방법은 간단합니다. pip를 이용해 설치해줄 수 있습니다. pip install PyQt5 조심할 점은 우분투를 이용해 설치할 경우 16.04 64bit 이상 버전에서만 pip를 이용해 설치가 가능합니다. 그 이하 버전을 이용할 경우에는 패키지를 직접 다운로드 받아 설치해 주어야 합니다. 설치가 완료되었으면 PyQt..