php7 설치 먼저 아래 포스팅을 보고 php 설치 후, php7을 디폴트로 바꿉니다. [WEB/개발환경] - Ubuntu 16.04에 LAMP ( Apache2, Mysql 5.5, PHP5 ) 설치 설치 및 설정이 제대로 완료되었다면 localhost/info.php..
OpenCV로 얻은 Camera 영상을 OpenGL 배경과 Cube 텍스쳐(texture)로 사용하는 예제입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40..
OpenCV로 캡처한 영상을 OpenGL 배경 텍스처로 사용하는 예제입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47..
이진화시킨 이미지에서 findContours함수를 사용하여 contour를 찾은 후, approxPolyDP 함수를 사용하여 다각형(polygon)을 검출하는 예제입니다. OpenCV 사용해서 실시간으로 도형 검출하기(shape detection) 1..
이전 예제에 이어서 작성합니다.. 정사각형 그리는 방법은 꼭 참고하세요.. [그래픽스&컴퓨터비전/OpenGL & Augmented Reality] - OpenGL 강좌 - 정사각형 그리기 [그래픽스&컴퓨터비전/OpenGL & Augmented Realit..
본 포스팅에 대한 업데이트된 문서가 존재합니다.. Visual Studio 2017/2019에서 OpenCV 4.4.0를 사용하는 방법 http://webnautes.tistory.com/1132 크리스마스 이브 전날에 OpenCV 3.2가 나왔었네요.. 거의 1년..
다이얼로그(dialog)는 전체 화면을 다 채우지 않고 일부 화면만 가리는 윈도우로, 사용자가 예/아니오 같은 선택을 하거나 추가적인 정보 입력을 하기를 기다립니다. 사용자가 응답하기 전까지는 화면에서 사..
본 포스팅을 보기 전에 아래 포스팅을 참고하세요.. [그래픽스&컴퓨터비전/OpenGL & Augmented Reality] - OpenGL 강좌 - 정사각형 그리기 OpenGL 프로그래밍을 위한 준비는 다음 포스팅을 참고하세요. [그래픽스..
OpenGL 프로그래밍을 위한 준비과정은 다음 포스팅을 참고하세요. [그래픽스&컴퓨터비전/Augmented Reality] - OpenGL( freeGLUT ) 을 Visual Studio 2015에 연동하기 [그래픽스&컴퓨터비전/Augmented Reality] -..
Android NDK와 OpenCV를 사용하여 갤러리에 있는 이미지를 불러와 영상처리하는 예제입니다. 바를 이용하여 Canny의 스레숄드를 변경하면 바로 결과를 볼 수 있습니다. 영상에는 코드 설명이 포함되어 있습니다...
Android 3.0(API 11)에서 Fragment가 처음 소개되었습니다. 재사용 가능한 유저 인터페이스를 생성하기 위한 새로운 컴포넌트라고 볼 수 있습니다. Fragment를 사용하면 코드를 재사용하여 동시에 여러 크기의 기..
OpenCV 배포시 포함되어 있는 얼굴 검출 C++코드를 NDK를 이용하여 Android에서 동작하도록 수정하였습니다. 안드로이드 + NDK 카메라 기본코드에 단순히 C++코드만 옮겨오면 되는 줄 알았는데 고려해야 하는게..
AsyncTask를 이용하여 URL 주소로부터 동영상 다운로드하는 작업을 백그라운드 스레드에서 수행하면서 다운로드 진행사항을 프로그레스 다이얼로그에 보여주기 위해서 UI 스레드에 요청하는 과정을 아래 포스팅에..
AsyncTask 예제를 작성하기 위해 프로그램 작성하기 시작했는데 필요한 기능들을 하나씩 계속 넣다보니 여러 가지가 포함되어 버렸습니다. 최종적으로 완성된 앱은 URL 주소로부터 동영상 다운로드 후 재생시켜..
본 글은 안드로이드에서 AsyncTsak의 개념 및 사용법에 대해 설명합니다. 동기(sync)와 비동기(async) 동기적으로 태스크를 실행한 후, 다른 태스크를 실행하려면 먼저 실행된 태스크가 종료되기를 기다려야 합..
라즈베리파이와 PC간에 파일 전송하는 것에 대해 다룹니다. 아래 주소에서 pscp.exe를 다운로드 받습니다. http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 다운받은 pscp.exe를 윈도우 로그인..
Places API Web Service를 이용하여 현재 위치 주변의 음식점 정보를 안드로이드의 구글맵에 표시하는 내용을 다룹니다. Google Maps Android API를 사용하는 방법과 FusedLocationProviderClient 를 이용하여 현..
Ubuntu 16.04에 최근에 릴리즈된 크롬 브라우저를 설치하는 과정을 설명합니다. 1. 크롬 설치 2. 플래시 플레이어 플러그인 설치 3. 폰트 변경 업데이트 된 문서가 있습니다. Ubuntu 18.04에 Chrome 웹 브라우저 6..
구글 애널리틱스의 획득>전체>소스/매체 모든 트래픽에 대한 세션수를 시간의 흐름에 따른 그래프로 그리기 검색엔진별 유입 세션수를 시간 흐름에 따른 그래프로 그려보기 블로그 등록만 하고 방치해두었던 구글..
Arduino IDE에서 사용하는 폰트를 변경하는 방법을 다룹니다. 최초 작성 2016. 12. 2 최종 작성 2020. 3. 25 알아냈습니다 님이 추가로 설치한 폰트로 변경이 안되는 점 해결방법을 알려주셔서 포스트를 수정했습..
네이버에서 검색시 블로그가 노출이 잘안되는 점을 개선하려면 네이버 웹마스터 도구를 이용해서 블로그를 등록한다고 하면 된다고 합니다. 그래서 네이버 웹마스터 도구( http://webmastertool.naver.com/boar..
라즈베리파이를 공유기에 연결해 놓고 우분투 리눅스에서 SSH로 접속하려는데 IP를 확인할 방법이 떠오르지 않았습니다. 라즈베리파이에서 고정 아이피를 사용하도록 해놓았으면 좋았겠지만 공유기마다 IP..
터미널에서 작업시 폰트때문에 가독성이 너무 떨어져서 폰트를 변경해보았습니다. 이왕이면 코딩용 폰트라고 불리는 것들을 설치하고 싶어서 아래 링크를 참고하여 네이버에서 공개한 D2 Coding로 결정하였습..
티스토리 블로그에 반응형 스킨 적용 스킨 수정 1.폰트를 나눔 고딕으로 변경 구글 애드센스 삽입 1.구글 애드센스 반응형 광고 생성 2. 티스토리 스킨에 에드센스 반응형 광고 코드 삽입 2-1. 본문글 우측 상단에..
Genymotion에서 Google Map API을 가지고 작성한 Android 앱을 테스트하는 방법을 소개합니다. Google Maps Android API를 이용하여 앱 제작하는 방법은 아래 포스팅을 참고하시기 바랍니다. Google Maps Android..
별문제 없이 윈도우 10에서 Android Studio와 Genymoion을 같이 사용했었는데 얼마 전 부터 가상 머신을 실행하는 도중에 블루 스크린이 뜨는 현상이 생겼습니다. Android Studio, Genymotion 그리고 VirtualBox..
pthread와 mutex를 OpenCV와 같이 사용하는 예제입니다. main함수에서 웹캠을 열어주고 UpdateFrame 스레드를 생성하고 UpdateFrame 스레드 에서는 웹캠으로 부터 영상을 넘겨주길 기다렸다가 그레이 영상으로..
블로그가 구글 검색엔진에서 검색이 잘 되었던 걸로 기억하는데 오늘 우연찮게 확인해봤더니 1주일동안 전혀 안되고 있네요. 지난 한달로 검색해봐도 많이 안 나옵니다. 예전에 티스토리 스킨 바꾸면서 크롤링..
안녕하세요 : ) 안드로이드 스튜디오에서 프로젝트를 GitHub에 공유하고 수정한 사향을 GitHub에 보내거나 가져오는 방법을 설명합니다. 다음 4가지를 다룹니다. 안드로이드 스튜디오의 프로젝트를 GitHUb에 공유..
Instant Run은 안드로이드 2.0부터 도입된 기능으로 코드를 수정하는 순간 바로 결과물에 반영이 되는 기능입니다. 기존의 코드 수정 후, 빌드하여 다시 deploy하는 번거로움을 줄여주기 위해서 라고 합니다. 그동..
NDK를 지원하는 안드로이드 프로젝트를 생성한 후, OpenCV 라이브러리를 추가하여 사용하는 방법을 설명합니다. 간단한 예제로 OpenCV Java API에서 캡처한 영상을 OpenCV C++ API에서 그레이스케일 영상으로 변환..
OpenGL을 공부하려 찾다가 새로운 것을 찾았네요.. 벌컨이라고 OpenGL 다음 버전에 해당되는 API라고 합니다. 위키피아에는 벌칸(Vulkan)을 아래처럼 소개하고 있습니다. 벌컨(Vulkan)은 오버헤드가 적은 크로스..
출처 http://askubuntu.com/a/763803 우분투 리눅스를 사용 후... 리부팅이나 컴퓨터 종료시 너무 느리게 진행되어 매번 기다리다가 강제 종료시키기 일쑤였는 데 해결방법을 찾았습니다. cups-browsed 데몬의..
설치 $ sudo apt-get install freeglut3-dev 예제 코드 컴파일 $ gcc test.c -lglut -lGL -lGLU 실행결과 visual studio code에서 컴파일 및 실행하기 visual studio code 설치는 다음 글을 참고하세요.. [리눅스..
1. 버튼 클릭 시 ImageView의 이미지 변경하기 프로젝터 폴더의 drawable폴더에 사용할 이미지를 복사해줍니다. 프로젝트 폴더\app\src\main\res아래에 위치합니다. 안드로이드 스튜디오에서 추가된 것을 확인 할..
컨볼루션(Convolution) 입력 영상을 스캔하면서 현재 위치의 픽셀과 마스크 크기 내에 포함되는 주변 픽셀을 마스크 배열과 컨볼루션하여 결과 영상의 현재 위치값으로 결정합니다. 마스크에서 정의한 가중치에..
히스토그램 평활화는 히스토그램을 이용하여 이미지의 명암 대비를 개선시키는 방법입니다. 그레이스케일 영상의 경우 픽셀이 가질 수 있는 값의 범위는 0 ~ 255 사이의 값입니다. 이미지 상에서 픽셀값이 0..
직선 y = mx + b을 매개변수식으로 바꾸면 r = xcosθ + ysinθ이다. 여기서 r은 원점으로부터 직선까지의 수직거리이며 θ는 이 직선과 수직인 직선과 x축 사이의 각도를 시계 반대방향으로 측정한 값이다. 좌..
계속 내용을 보완하고 추가할 예정입니다. 기준 마커(fiducial marker)는 일정한 포맷으로 만들어진 인공적인 랜드마크입니다. 증강 현실(Augmented Reality)을 구현하데 이용할 수 있습니다. 영상에서 마커를 검..
OpenCV's extra modules( opencv_contrib )을 포함하여 OpenCV 4.0.1 라이브러리를 Visual Studio 2017에서 사용하기 위해 컴파일한 과정을 다루고 있습니다. 윈도우즈용으로 미리 빌드된 OpenCV 라이브러리에는 e..
이진화는 가장 간단한 세그멘테이션(segmentation) 방법이다. 세그멘테이션이란 이미지를 분할하여 원하는 부분 혹은 물체를 검출하는데 많이 사용되는 기법이다. 이진화는 원본 영상을 그레이 영상으로 변환한 후..
출처: http://sheepdogguides.com/arduino/aht2printfloat.htm 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 /*Program..
브레드 보드를 이용하여 Arduino UNO 보드를 만든 과정을 기록해봤습니다. 주문 부품 Atmega328P-PU 1개 http://itempage3.auction.co.kr/DetailView.aspx?itemNo=B310712008&frm3=V2 브레드보드 미니 사이즈 ..
OpenCV 4.0.1과 opencv_contrib(extra modules)를 컴파일하여 Ubuntu 16.04에 설치하는 방법을 다룹니다. ps. Ubuntu 18.04에 OpenCV를 설치하는 방법은 다음 포스트를 참고하세요 Ubuntu 18.04에 OpenCV 4.2.0 설..
Linux Mint 18 Cinnamon 64-bit가 설치된 컴퓨터에서 VMware 설치 및 게스트 OS로 윈도우즈 설치를 진행한 과정을 기록하였습니다. VMware 홈페이지( http://www.vmware.com/ )에서 VMware Workstation Player..
Apache2 웹서버, MySQL 데이터베이스 서버, PHP를 Ubuntu에 설치하는 과정을 소개합니다. LAMP는 운영 체제와 오픈 소스 소프트웨어 스택의 조합으로 Linux, Apache, MySQL, PHP의 첫글자만 가지고 만든 약어입..
데이터베이스에서 이미지를 어떻게 관리하는지 찾아보니 이미지를 데이터베이스에 넣는게 가능하지만 그렇게는 하지 않고 파일의 경로만 데이터베이스에 저장하는 군요.. 데이터베이스와 연동하기전에 먼저 Dat..
이륜 로봇에서 이동거리 구하기 D = 바퀴의 지름 = 65 mm R = encoder의 resolution = 1회전에 16펄스 G = 모터의 기어비(바퀴와 엔코더사이의 기어비) = 120:1 1 thick당 이동한 거리 F = ( D *3.14)/(G*R) =(65*..
새로운 프로젝트를 생성한 후 솔루션 탐색기에서 솔루션 이름을 선택하고 마우스 우클릭을 하여 나온 메뉴에서 솔루션용 NuGet 패키지 관리를 선택합니다. 찾아보기를 선택한 후, 입력창에 Sqlite를 입력하면 나..
강좌이긴 한데.. 처음부터 A-Z까지의 내용을 다루는 것이 아니라.. 제가 작성할 프로그램에 관련된 부분들만 우선적으로 공부하고 있어서.. 올리는 내용도 그렇게 될 것 같습니다. 새로운 프로젝트를 생성한 후...
비주얼 베이직을 공부하며 작성한 프로그램 코드들을 설명을 덧붙여서 올릴 계획입니다. Visual Studio 6로 오래 전에 짜보고는 간만에 Visual Studio 2015로 넘어와서 해보는데 좀 바뀐점이 있어서 헷갈리는 군요..
화면 상단에 있는 스피너에서 원하는 단어를 선택하면 하단에 있는 리스크뷰에 선택한 단어가 추가되는 예제입니다. 오른쪽 이미지는 스피너에서 사과, 귤, 바나나를 선택한 후의 결과입니다. activity_main...
첫번째 예제는 ListView에 있는 단어 중 하나를 선택하면.. 상단에 있는 TextView에 해당 단어를 보여주는 간단한 예제입니다. 사용한 레이아웃 구조는 간단합니다. 리스트뷰에서 선택된 아이템을 보여줄 Text..
출처 - http://android-pratap.blogspot.kr/2015/12/horizontal-recyclerview-in-vertical.html?m=1 구글 플레이 스토어 앱처럼 수직방향의 RecyclerView 안에 여러 개의 수평방향 RecyclerView 를 넣은 구현입..
우선 새로운 프로젝트를 생성하는데 최소 API 버전을 15로 해서 만들었습니다. 그리고 app/build.gradle에 다음 빨간색 한 줄을 추가합니다. 주의할 점은 compileSdkVersion과 버전을 맞추어야 한다는 것입니다...
좌우로 움직이는 스와이프 제스처로 앱의 화면을 전환을 하는 예제입니다. 최초작성 2016. 7. 24 최종작성 2019. 10. 12 스와이프(swipe)는 손가락을 화면에 댄 후, 일직선으로 드래그했다가 손을 떼는 동작입니다..
Intent를 사용하여 다른 액티비티로 전환하며 데이터를 전달하는 방법을 다룹니다. 인텐트 예제 버튼을 클릭하면 이미지뷰에 있는 이미지와 문자열, 정수, 실수를 두번째 액티비티로 전달합니다. 전환된 두번째 액..
GoogleApiClient와 FusedLocationApi를 사용하여 구글맵에 현재 위치를 표시하는 예제입니다. 최종 업데이트 - 2017. 11.27 Deprecated된 FusedLocationApi를 대체하는 FusedLocationProviderClient를 사용하도..
https://www.quora.com/What-is-a-vertex-shader-and-what-is-a-fragment-shader http://www.haroldserrano.com/blog/what-is-the-opengl-rendering-pipeline OpenGL ES에서 모든 오브젝트들은 일련의 코너점들에..
간단한 OpenGL ES 2.0 예제입니다. 1. 새로운 프로젝트를 생성하고 안드로이드 매니페스트 파일 AndroidManifest.xml에 사용하려는 OpenGL ES 버전을 2.0으로 지정해줍니다. <?xml version="1.0" encoding="utf-8"..
얼마전부터 자꾸 아래와 같은 에러가 나면서 Genymotion을 사용하는데 문제가 생겼습니다.. 오후 4:26:56 Genymotion Device added to main list: Google Nexus 6 - 5.0.0 - API 21 - 1440x2560 오후 4:26:56 Ge..
LinearLayout은 모든 자식들이 일렬로 정렬되는 뷰그룹이다. 정렬되는 방향은 수평 혹은 수직이 될 수 있다.. orientation 속성으로 레이아웃의 방향을 수평 혹은 수직으로 지정해줄 수 있다. LinearLayout의 모든..
unity를 설치하기 전에 android studio를 설치합니다. 자세한 내용은 아래 포스팅을 참고하세요. [Android/개발환경] - 안드로이드 윈도우 개발환경 구축하기( android studio + genymotion) android studio 설..
이번 포스팅에서는 템플릿 매칭을 사용하여 이미지상에서 오브젝트를 찾는 방법을 다룹니다. 다음 OpenCV Python 튜토리얼을 참고하여 강좌를 비정기적로 포스팅하고 있습니다. https://docs.opencv.org/4.0.1/d6/..
genymotion을 사용하다가 최신 버전을 다운받아 설치했더니 아래와 같은 에러가 났다.. webnautes@webnautes-W54-55SU1-SUW ~/다운로드/genymotion $ ./genymotion ./genymotion: /usr/lib/x86_64-linux-gnu/libs..
Ubuntu의 왼쪽에 보이는 독(Dock)을 Mac OS처럼 화면 아래에 보이도록 하는 방법을 설명하고 있습니다. 2018. 7. 4 - 최초 작성 2021. 5. 8 - Ubuntu 20.04 에서 확인 1. Ubuntu 20.04 / 18.04 설치를 완료하면 왼..
Ubuntu 20.04 / 18.04 설치 후 한글 입력을 설정해주는 방법을 설명합니다. 2018. 7. 4 최초 작성 2019. 8. 20 2020. 7. 11 Ubuntu 20.04에서 동작 확인 1. 오른쪽 아래에 보이는 프로그램 표시 아이콘을 클릭합니..
Windows가 설치된 컴퓨터에 Ubuntu 22.04를 설치하는 방법을 설명합니다. 중간에 다운로드도 해야 하므로 인터넷이 사용가능한 곳에서 진행하세요. 2018. 7. 3 - 최초 작성 2022. 5. 8 - Ubuntu 22.04 설치 컴퓨터..
Visual Studio Code를 Windows와 Ubuntu에 각각 설치하는 방법을 설명합니다. 설치를 진행해본 운영체제 버전은 Windows 10과 Ubuntu 20.04 /Ubuntu 18.04 입니다. 1. 윈도우에 설치하는 방법..
Windows에서 gcc, g++을 사용하는 C/C++ 개발환경을 만들기 위해 MinGW를 설치하는 방법을 다루고 있습니다. 2018. 7. 2 - 최초 작성. 1. https://sourceforge.net/projects/mingw/files/ 에서 초록색 버튼을..
HashMap에 원하는 데이터를 입력하여 ArrayList의 item 추가한 후, 다시 ArrayList에서 HashMap을 꺼내서 HashMap에 있는 값들을 출력하는 예제코드입니다. Java(JDK)와 Android Studio를 사용하여 각각 테스..
이전 포스팅에서 언급했던 화면 크기 제약으로 일정 개수만 리스트뷰에 보여주게 되는 원리를 설명하려면 getView 메소드가 포함된 Custom Adapter를 구현해야 합니다. 이번 포스팅에선 동작을 설명하고 자세..
이전 포스팅에서 다루었던 이미지에서 도형을 검출하는 예제 코드를 웹캠 기반으로 수정하여 테스트해 본 과정을 설명합니다. OpenCV 사용해서 실시간으로 도형 검출하기(shape detection) 1 / 2 - 이미지에서..
Raspberry Pi Camera Module( pi camera )는 USB 장치가 아니라서 연결을 해도 바로 /dev/video0 디바이스 파일이 생성되지 않습니다. 별도의 드라이버 모듈을 로드해야 /dev/video0 파일이 생성됩니다. 관련 포스..
본 포스팅에서는 ArrayList에 저장되어 있는 데이터를 ListView에 보여주기 위해 ArrayAdapter를 사용하는 방법을 코드적으로 설명합니다. 자세한 구현 방법은 MainActivity.java에 있는 주석을 번호 순으로 읽..
데이터베이스에 데이터를 입력하고 JSON 형식으로 데이터를 가져오는 예제입니다. 검색 결과를 가져올 수도 있습니다. 다음 세 개의 포스팅에 있는 코드를 하나의 앱에서 동작하도록 수정한 결과입니다. 나라만 검..
PHP를 사용하여 회원 가입 및 로그인이 되는 간단한 웹사이트를 만들어 보았습니다. 사용자가 입력한 패스워드 검사, 세션 유지나 AES 256으로 평문을 암호하는 코드도 포함되어 있습니다. 웹사이트에 회원 가입하..
Ubuntu 18.04에서 Sublime Text 3를 사용하여 OpenCV 코드를 컴파일하는 방법을 다루고 있습니다. OpenCV 설치방법은 다음 포스팅을 참고하세요. Ubuntu 18.04에 opencv_contrib 포함하여 OpenCV 3.4.1 설치 http:..
OpenCV 4.2.0과 opencv_contrib(extra modules)를 컴파일하여 Ubuntu 18.04에 설치하는 방법을 다룹니다. 1. 설치된 OpenCV 제거 2. 기존 설치된 패키지 업그레이드 3. OpenCV 컴파일 전 필요한 패키지 설치 4. Op..
Apache2 웹서버, MySQL 데이터베이스 서버, PHP를 Ubuntu에 설치하는 과정을 소개합니다. LAMP는 운영 체제와 오픈 소스 소프트웨어 스택의 조합으로 Linux, Apache, MySQL, PHP의 첫글자만 가지고 만든 약어입..
Ubuntu 20.04 / 18.04에 크롬 웹 브라우저를 설치하는 방법을 설명합니다. 2018. 5. 20 최초 작성 2020. 7. 11 Ubuntu 20.04에서 동작 확인 크롬 웹 브라우저 패키지를 설치하기 위해 필요한 인증키를 등록합니다...
우분투 16.04 LTS(Xenial Xerus)로부터 우분투 18.04 LTS(Bionic Beaver)로 업그레이드 하는 과정을 다룹니다. 우분투 18.04.1이 릴리즈되는 7월 말부터 정식으로 업그레이드를 지원되지만 개발 릴리즈 버전으로..
텐서플로우 공식 문서, stackoverflow 등 여러 인터넷 상의 자료를 바탕으로 공부하며 작성한 포스팅이며 아직 부족한 점이 많습니다. 계속 보완될 예정이며 잘못된 부분이 있으면 댓글로 알려주세요. 텐서플로..
본 포스팅에서는 파이썬의 mutable 객체와 immutable 객체에 대해 is 연산자, id 함수, == 연산자를 중심으로 설명하고 있습니다. 2018. 5. 10 - 최초작성 2018. 7. 19 파이썬에서 모든 것은 객체(object)입니다..
Android Studio에서 GitHub 프로젝트 가져와 사용하는 방법 안녕하세요 : ) 안드로이드 스튜디오에서 GitHub에 공개된 안드로이드 프로젝트를 가져와 사용하는 방법을 설명합니다. 마지막 업데이트 2019. 4. 26
유튜브에서 영어자막을 다운로드하는 방법을 소개합니다. 2018. 12. 4. 최초작성 2021. 5. 17 최종작성 1. 크롬 웹브라우저에 Tampermonkey 확장 프로그램을 설치합니다. 아래 링크에 접속 후, Chrome에 추가를 선..
윈도우/우분투에 설치한 PyCharm에서 텐서플로우 프로그래밍을 시작하기 위해 필요한 작업을 다루고 있습니다. 1. Python 설치(Windows) 2. Python 설치(Ubuntu) 3. PyCharm 설치 ( Windows ) 4. PyCharm 설치 ( U..
명령 프롬프트를 실행하고 마이크로소프트 사이트에 나온대로 삭제하려고 해보면 다음과 같은 에러가 나면서 삭제가 되지 않습니다. C:\Users\webnautes>lxrun /uninstall /full 경고: lxrun.exe는 Linux 배포용..
윈도우 10에 WSL2 및 OpenCV 설치하는 과정입니다. 별도로 작성되었던 포스트였는데 지금 다시 확인해보니 기존 우분투와 WSL2에 설치된 우분투에 OpenCV를 설치하는 과정이 차이가 없습니다. 주의할 점은 WSL2에..
Windows 10에 wsl2 ( Windows Subsystem for Linux )를 설치한 후, Ubuntu 20.04를 설치한 과정을 다루고 있습니다. 2017. 12. 15 최초작성 2021. 05. 19 2021. 08. 01 최종작성 "Windows Subsystem for Linux"..
라즈베리파이를 위해 이클립스에서 OpenCV 예제 크로스 컴파일을 하는 방법을 소개합니다. 마지막 업데이트 2019. 5. 3 1. 이클립스 설치 IDE로는 Eclipse를 다운로드 받아서 사용했습니다. https:/..
Google Map에 목적지 마커를 추가한 후, 사용자가 해당 마커 위치로 이동할 때마다 남은 거리를 계산 해주도록 작성해보았습니다. ‘ 2017. 11. 30 최초작성 ~~~~~~~~~ 2019. 11. 25 FusedLocationProviderClient..
Places API Web Service를 이용하여 현재 위치 주변에 있는 음식점 같은 장소 정보를 획득하여 주변에 위치를 아래 화면처럼 빨간색 마커로 출력해줍니다. 마커 하나를 선택하면 해당 장소의 이름과 주소를 정보..
“The virtual device got no IP address” 에러 메시지 보여주며 GenyMotion의 가상 디바이스가 실행되지 않는 현상을 해결하는 방법입니다. 최종 업데이트 - 2018. 5. 25 1. VirtualBox의 메뉴에서 파일 > 호스..
OpenCV에서 투명한 부분이 포함되어 있는 이미지(transparent image)를 다른 이미지 또는 영상에 오버레이하는 방법을 찾아봤습니다. http://jepsonsblog.blogspot.kr/2012/10/overlay-transparent-image-in-openc..
OpenGL에서 텍스처를 사용하는 방법을 설명합니다. 이번 포스팅에서는 삼각형에 텍스처를 입히는 경우를 설명하고 다음 번에는 사각형에 텍스처 입히는 경우와 텍스처 방법 관련 옵션에 대해 설명할 예정입니다. 1..
안드로이드 앱에서 입력한 키워드를 웹서버에서 실행되는 PHP를 이용하여 MySQL 데이터베이스 서버에 질의하는 예제입니다. 질의 결과는 JSON 형식으로 가져와서 화면에 보여줍니다. 현재 예제에선 키워드를 2개..
Windows와 Ubuntu 환경에 설치된 Visual Studio Code에서 C/C++을 컴파일하고 실행시키는 방법에 대해 설명합니다. 테스트에 사용한 운영체제 버전은 Windows 10과 Ubuntu 20.04입니다. Visual Studio Code 버전에..
strings.xml 파일에 문자열 서식을 지정하여 ArrayList에 저장되어 있는 문자열들을 TextView에 출력하는 예제입니다. 앱의 레이아웃은 TextView만 있는 간단한 구조입니다. <?xml version="1.0" encoding="utf-..
Visual Studio 2017에서 추가된 Linux 개발 기능을 Raspberry Pi에서 테스트해보았습니다. 원격 디버깅도 가능하다는데 아직 못해봤습니다. 1. Linux development with C++를 위한 워크로드 설치 2. 프로젝트 생성..
삼각형을 구성하는 세 개의 vertex(정점, 꼭짓점)의 위치와 색상 데이터를 GPU로 전송하여 렌더링 결과를 화면에 출력하는 방법에 대해 설명합니다. 기본적인 GLFW와 GLEW 라이브러리 사용법을 설명했던 다음 포스..
OpenCV의 SURF 예제를 테스트 해보았습니다. 장면 이미지에서 특정 물체를 찾아내는 이미지 매칭 테스트입니다. 업데이트 2019. 3. 4 2019. 5. 11 윈도우에서 진행하려면 아래 글에 나온대로 OpenCV을 다시..
Windows에 설치된 Visual Studio Code에서 Kotlin을 컴파일하고 실행시키는 방법에 대해 설명합니다. 2017. 6. 28 - 최초 작성 2018. 07. 01 2020. 04. 10 2021. 04. 08 컴파일 관련해서 이슈가 있었는데 이제서야..
윈도우를 재설치 또는 업데이트되면서 지워진 grub를 복구하는 과정을 설명합니다. 1. 다음 포스팅을 참고하여 UEFI 지원하는 우분투 설치용 USB 메모리를 준비합니다. Rufus를 사용하여 Ubuntu 설치용 USB 메모리..
Rufus를 이용하여 Ubuntu 20.04 LTS 설치용 USB 메모리를 만드는 과정을 다루었습니다. 2017. 06. 28 - 최초작성 ~~~~~~~~~ 2019. 12. 08 2020. 6. 27 - Ubuntu 20.04 진행, 우분투 버전과 상관없이 진행방법은 동..
Android Studio에서 HAXM을 설치하지 않아도 속도가 빠른 Genymotion을 사용하는 방법을 다루었습니다. 또한 사용하기 쉬운 인터페이스로 가상 디바이스에서 앱을 테스트해 볼 수있게 해줍니다. 지도를 보며 GPS..
어느 순간부터 컴퓨터의 시간이 자꾸 안맞아서 수동으로 인터넷 시간 동기화를 해주곤 했었습니다. 단순히 컴퓨터 메인보드에 있는 CMOS 배터리 문제인 거 같아 교체했지만 그래도 해결되지 않아서 방법을 찾아봤..
윈도우에서 리눅스 파티션을 마운트시켜서 읽고 쓰기가 가능하도록 하는 방법을 설명합니다. 테스트 환경은 다음과 같습니다. Windows 10 Pro 64비트 Ubuntu 18.04 LTS 64비트 2017. 6. 4. 최초 작성 2018. 11...
Android Studio에서 Emulator를 설치하고 가상 디바이스를 생성하는 방법을 다룹니다. 또한 앱을 실행하는 방법 및 가상 디바이스에서 테스트 할 수 있는 항목에 대해 설명합니다. 1. Android Emulator 설치하기 2..
MFC 프로젝트를 생성하고 리소스 뷰를 열기 위해 Ctrl + Shift + E를 눌렀더니 다음과 같은 에러가 났습니다. C:\Program Files (x86)\Windows Kits\10\bin\x86\rcdll.dll; 리소스 컴파일러 DLL을 찾을 수 없습니..
Bluetooth 모듈이 내장되어 있는 Raspberry Pi 3와 윈도우가 설치된 PC 간에 페어링 및 메시지를 주고 받는 방법을 설명합니다. 블루투스 통신 테스트는 C언어로 작성된 Bluetooth 서버 예제를 Raspberry PI 3에서..
Visual Studio 2017에서 C++ 언어의 cout 함수를 사용하여 한글 출력하는 콘솔 응용 프로그램을 작성시 발생하는 문제점과 해결 방법을 설명하고 있습니다. 테스트 환경은 다음과 같습니다. Windows 10 Pro 64 비..
윈도우에서 안드로이드 스튜디오 3.1.2를 설치하고 프로젝트 생성하는 과정을 다룹니다. 안드로이드 SDK 설치 요령과 새로운 안드로이드 프로젝트 생성 및 기존 프로젝트를 불러오는 방법도 소개하고 있습니다. 최..
Windows에 Java SE Runtime Environment(JRE)가 설치되었는지 여부 확인 및 JRE 설치하는 방법을 다룹니다. JRE 설치 여부 확인 방법 JRE 설치 방법 JRE 설치 여부 확인 방법 명령 프롬프트를 실행하기 위해 윈도..
Visual Studio 2015/2017을 위해 미리 빌드되어 배포되는 OpenCV 4.5.3 패키지를 Visual Studio 2017/2019에서 사용하기 위해 필요한 과정을 설명합니다. Visual Studio 2019(vc16)를 위한 공식적인 배포는 없지만..
C/C++ 및 Win32&MFC 프로그래밍을 위해 Visual Studio Community 2017를 설치하는 방법을 다루고 있습니다. 테스트 환경은 다음과 같습니다. Windows 10 Pro 64bit 다음 순서로 설명합니다. 1. 비주얼 스튜디..
16진수 문자열과 바이트 배열간의 변환하는 방법을 소개합니다. String 타입의 변수 hexString에 16진수 문자열 01020304FF11을 대입합니다. String hexString = "01020304FF11"; hexStringToByteArray 메소드를..
한컴오피스 NEO 설치 과정에서 .Net Framework 3.5 설치가 진행되다가 오류가 나는 바람에 한컴 오피스를 깔 수 없었습니다. 그래서 다른 방법으로 .Net Framework 3.5를 설치하는 방법을 찾아 해결했습니다. 출..
우분투에서 와이파이 사용 중 노트북 덮게를 닫아놓았다가 다시 사용하려하면 발생하는 와이파이 관련 문제 해결 방법을 설명하고 있습니다. 와이파이 사용자체가 불가능해지거나 와이파이 사용은 가능한데 현재..
윈도우에서 안드로이드 스튜디오를 설치하고 프로젝트 생성하는 과정을 다룹니다. 안드로이드 SDK 설치 요령과 새로운 안드로이드 프로젝트 생성 및 기존 프로젝트를 불러오는 방법도 소개하고 있습니다. 1. 안..
UEFI 모드로 부팅이 가능하도록 설치용 윈도우 USB를 만드는 방법을 설명합니다. 최초 작성. 2017. 4. 9 최종 수정. 2020. 11. 4 Windows 10 Version 20H2 ( October 2020 Update ) 버전을 사용시 바뀐점을 반영했..
Android KitKat(4.4) 이하 버전에서 Google Map관련 API를 사용한 앱을 실행하려 할 경우 Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException 에러가..
Nexus 5에 CyanogenMod를 올려 사용하다가 다시 순정(공장 출하 상태)으로 돌아오기 위해서 Factory Image를 올려보았습니다. Nexus와 Pixel 폰을 위한 Factory Image는 다음 사이트에 공개되어있습니다. 진행..
Atmel Studio 7.0에서 제공하는 시뮬레이터를 사용하여 간단한 소스 코드를 디버깅해보았습니다. 실행된 코드에 의해서 레지스터들이 어떻게 변하는지 확인할 수 있습니다. http://www.atmel.com/tools/ATMEL..
Ubuntu Linux 16.04에 미리 빌드되어 나오는 qt 설치 파일을 다운로드 받아 설치 후, 간단한 예제 코드를 작성하여 터미널에서 컴파일 하는 과정을 다루었습니다. 1. http://download.qt.io/archive/qt/ 에서 최..
OpenGL Extensions Viewer을 다운로드 받아 설치합니다.. http://realtech-vr.com/admin/glview 문제가 있으면 아래 사이트에서 다운로드 받으면 됩니다. http://www.download3k.ro/Install-OpenGL-Extensions-Vie..
예전에 Android Studio에서 빌드 시스템을 gradle으로 변경한지 얼마 안되었을 때에는 기존 이클립스 + ADT로 만들었던 프로젝트들을 가져오기가 힘들었는데.. 언제부터인가 이클립스 + ADT로 작성된 프로젝..
라즈베리파이 4에 캐릭터 LCD를 연결하여 사용하는 방법을 설명합니다. 2017. 02. 19 최초작성 2021. 02. 05 라즈베리파이 4에서 진행 필요한 부품은 다음과 같습니다. 캐릭터 LCD 1602 핀헤더 1 x 40p, 2.54mm..
아두이노 우노에 ESP8266 WiFi 모듈을 연결하고 TCP 서버 프로그램을 실행한 후, 라즈베리파이에서 TCP 클라이언트 프로그램으로 접속하여 아두이노에 연결된 LED를 제어하는 예제입니다. 아두이노에서 사용한..
OpenGL 렌더링 결과를 보여주기 위해 필요한 윈도우(UI)와 OpenGL 컨텍스트 생성을 MFC로 처리하는 방법을 설명합니다. 64비트 윈도우(x64)에서 OpenGL 3.x 이상 API를 사용하여 프로그래밍을 하는 경우를 대상으..
OpenGL 렌더링 결과를 보여주기 위해 필요한 윈도우(UI)와 OpenGL 컨텍스트 생성을 MFC로 처리하는 방법을 설명합니다. 64비트 윈도우(x64)에서 OpenGL 2.x API를 사용하여 프로그래밍을 하는 경우를 대상으로..
이번 포스팅에서는 OpenGL에서 사각형을 그리는 방법을 설명합니다. 지난번 삼각형 그렸던 코드를 수정하여 진행합니다. Modern OpenGL 강좌 - 삼각형 그리기( 렌더링, Vertex Array Object, Vertex Buffer Object..
GLFW 라이브러리를 사용하여 윈도우와 OpenGL context를 생성하고 GLEW 라이브러리를 사용하여 윈도우를 단색으로 채우는 간단한 예제를 설명합니다. 본 포스팅에 있는 예제 코드를 컴파일하기 위해 필요한 Visual..
Visual Studio Community 2019에서 GLFW 라이브러리를 사용하여 OpenGL 개발을 시작하기 위해 필요한 설정 방법을 다룹니다. 다른 Visual Studio 버전에서도 거의 동일하게 설정 가능합니다. 1. 프로젝트 생성 2...
RecyclerView에서 아이템 클릭시 해당 내용을 다른 액티비티에 보여주는 예제입니다. 최초작성 2019. 2. 17 최종작성 2019. 8. 22 1. RecyclerView 기본 예제 코드는 다음 포스팅을 참고하세요. Android RecyclerV..
RecyclerView에 GridLayoutManager를 적용하여 그리드를 만든 후 이미지 크기가 일정하게 보이지 않는 문제를 해결했습니다. 1. RelativeLayout를 상속한 SquareLayout 클래스를 추가합니다. package com.tistory...
RecyclerView를 사용하는데 익숙하다면 그리드뷰를 금방 만들 수 있습니다. Android RecyclerView 간단한 예제 https://webnautes.tistory.com/1214 기존에 사용하던 LinearLayoutManager 대신에 GridLayoutMana..
이미지뷰에 사진을 넣었을때 상하에 공백이 생기는 문제가 생길 수 있습니다. 세로 방향의 이미지는 문제가 없는데 가로로 회전된 이미지만 이런 현상이 발생합니다. 레이아웃 파일의 ImageView에 android:adjustV..
Tensorflow의 저수준 API인 텐서플로우 코어 사용방법을 다루고 있습니다.
OpenCV에서 바이너리 이미지로 변환한 후, 텍스트 파일로 저장하는 방법을 다룹니다. 이후 엑셀에서 불러와 한 셀에 하나의 픽셀값이 들어가도록 합니다. 다음 이미지를 입력으로 해서 OpenCV를 사용하여 얻은 텍..
imwrite 함수로 저장하면 바이너리 이미지라도 그레이스케일(8비트 1채널) 이미지로 저장됩니다. imwrite 사용시 IMWRITE_PNG_BILEVEL 옵션을 추가해주면 1비트 1채널 이미지로 저장할 수 있습니다. 1비트 이기 때..
이미지에서 코너 검출시 사용하는 해리스 코너에 대해 알아봅니다. Harris Corner Detector 구현 코드입니다. import cv2 as cv import numpy as np import time img_color = cv.imread('chessboard.jpg', cv.IMRE..
OpenCV에서 캡처한 영상을 pyQt5로 작성된 GUI에서 보여주는 방법을 다룹니다. 깃허브에 있는 코드를 수정하여 사용했습니다. 처음 실행하면 버튼 2개만 보입니다. start 버튼을 클릭하면 웹캠 영상이 보입니다. C..
텐서보드를 사용하여 텐서플로우의 그래프를 그리는 방법을 설명합니다. 1. 그래프를 그릴 코드를 실행합니다. 노드 생성시 name 아규먼트를 사용하여 노드에 이름을 지정해주면 tensorboard 사용시 노드에 해..
OpenCL 사용 여부에 따라 OpenCV 성능이 어떻게 달라지는지 테스트해보았습니다. 테스트는 다음과 같이 진행했습니다. OpenCL을 활성화 한 상태에서 소벨을 10000번 진행하고 ocl::setUseOpenCL(true); for (int i..
본 포스팅에서는 케라스(tf.keras)를 사용하여 텍스트로 작성된 리뷰를 긍정적 또는 부정적 영화 리뷰로 분류합니다. 클래스가 두 개인 바이너리 분류(binary classification) 입니다. 본 포스팅은 다음 텐서플로..
라즈베리파이에서 보낸 문자열을 아두이노 우노에 연결된 캐릭터 LCD에 보여주는 예제입니다. 아두이노 우노에 연결된 ESP8266을 사용하여 TCP 소켓 통신을 합니다. 진행하기 전에 다음 포스팅을 참고하여 아두이..
본 포스팅은 Fashion MNIST(의류, 가방, 신발등의 이미지)를 분류하기 위해 케라스(tf.keras)를 사용하여 뉴럴 네트워크 모델을 학습시키는 방법을 설명합니다. 다음 문서를 기반으로 제작했습니다. Basic classif..
Watershed 알고리즘을 사용하여 영상 분할(Image segmentation) 하는 방법에 대해 설명합니다. 다음 OpenCV Python 튜토리얼을 참고하여 강좌를 비정기적로 포스팅하고 있습니다. https://docs.opencv.org/4.0.1/d..
거리 변환(Distance Transform)은 바이너리 이미지(Binary Image)에서 픽셀값이 0인 배경으로부터의 거리를 픽셀값이 255인 영역에 표현하는 방법입니다. 배경으로부터 멀리 떨어져 있을 수록 높은 픽셀 값을 가..
Hough Line Transform 구현 원리에 대해서 다룹니다. 유튜브에서 사용한 코드입니다. import cv2 as cv import numpy as np import math import time img_original = cv.imread('square.jpg', cv.IMREAD_COLOR) im..
깃허브에 공개되어 있는 파이썬 기반 얼굴 인식 라이브러리를 테스트해보았습니다. 1. dlib를 설치합니다.(시간이 오래 걸립니다.) pip3 install dlib 2. Face Recognition 라이브러리를 설치합니다. pip3 install..
USB 케이블 없이 WiFi를 사용하여 안드로이드 스튜디오에서 안드로이드 디바이스를 디버깅 및 앱 설치하는 방법을 설명합니다. 처음 연결시에는 USB 케이블이 필요하고 이후 WiFi로 연결되는 방식입니다. 1. 안..
PyOpenGL과 GLFW를 사용하여 사각형을 그려보는 Modern OpenGL 예제입니다. 다음 깃허브의 코드를 바탕으로 강좌를 진행하고 있습니다. https://github.com/totex/PyOpenGL_tutorials Python으로 배우는 Modern Op..
이미지에서 2차원 히스토그램을 구하는 방법과 응용으로 Histogram Backprojection을 설명합니다. 다음 OpenCV Python 튜토리얼을 참고하여 강좌를 비정기적로 포스팅하고 있습니다. https://docs.opencv.org/4.0...
이미지에서 히스토그램을 구하는 방법과 응용으로 Histogram Equalization, CLAHE을 설명합니다. 다음 OpenCV Python 튜토리얼을 참고하여 강좌를 비정기적로 포스팅하고 있습니다. https://docs.opencv.org/4.0.0..
NDK 18부터는 gnustl을 지원하지 않고 대신 libc++를 사용합니다. 하지만 Android에서 OpenCV를 사용하려면 gnustll을 사용해야 되서 발생하는 에러입니다. 해결하는 방법은 두가지입니다. 다음 포스팅에 나오는대..
PyOpenGL과 GLFW를 사용하여 삼각형을 그려보는 Modern OpenGL 예제입니다. 다음 깃허브의 코드를 바탕으로 강좌를 진행하고 있습니다. https://github.com/totex/PyOpenGL_tutorials Python으로 배우는 Modern Op..
Python에서 OpenGL을 동작시켜야 하는 필요성을 느껴서 PyOpenGL, glfw를 설치하고 예전에 작성했던 포스팅에 있는 코드를 Python으로 변환해서 실행시켜 보려했는데 잘 안되네요. C++ 코드에서는 glew를 사용했었..
컨투어 검출하는 방법과 컨투어 특성을 사용하는 방법을 다룹니다. 사용하는 OpenCV 버전에 따라 findContours 함수의 사용 방법이 다음처럼 차이가 있습니다. OpenCV 4.x contours, hierarchy = cv.findContour..
Python용 IDE인 PyCharm에서 OpenCV 최신버전을 사용하는 방법을 설명합니다. Windows 10과 Ubuntu 18.04에서 진행했습니다. 아래 포스팅에서 소개하고 있는 pip를 사용하여 OpenCV를 설치해오다가 이번에 릴리..
Android용으로 OpenCV 4.4.0을 빌드하는 방법을 다룹니다. 2018. 11. 19 : 최초 작성 2019. 5. 8 2019. 5. 15 : contrib 추가 2019. 5. 16 : nonfree 옵션 추가 (surf 사용시 필요) 2019. 5. 16 : opencl 활성화 ..
첫번째 코드를 실행시켜서 손글씨 숫자 MNIST 데이터로 훈련을 시킨 후, 두번째 코드에서 실제 손글씨 이미지를 로드하여 인식시켜보았습니다. 관련 최근 포스트 [Machine Learning & Deep Learning/Tensorflow 강..
SimpleScreenRecorder는 리눅스에서 사용할 수 있는 화면 녹화 프로그램입니다. 우분투에서 화면 캡쳐를 해보려고 찾은 프로그램인데 사용법이 단순해서 좋은 듯 합니다. 우분투 외의 리눅스 배포판에서는 아래 링..
라즈베리파이에 mjpg-streamer를 설치하여 웹 스트리밍하는 영상을 가져와서 OpenCV에서 사용해보았습니다. Raspberry Pi에서 mjpg-streamer를 사용하여 웹캠 스트리밍하기 http://webnautes.tistory.com/1261 사..
라즈베리파이에 연결된 카메라로부터 캡쳐된 영상을 웹브라우저에서 볼 수 있도록 mjpg-streamer를 사용하는 방법을 설명하고 있습니다. 다음 블로그 글을 참고하여 진행했습니다. https://desertbot.io/blog/how-..
Sobel 함수를 사용하여 에지를 검출하는 방법을 설명합니다. 마지막 업데이트 - 2018. 10. 16 다음 OpenCV Python 튜토리얼을 참고하여 강좌를 비정기적로 포스팅하고 있습니다. https://docs.opencv.org/3.4.3/d6..
OpenCV에서 제공하는 Erosion, Dilation, Opening, Closing 연산하는 함수들을 다룹니다. 보통 바이너리 이미지(Binary Image)에서 흰색으로 표현된 오브젝트의 형태를 개선하기 위해 사용됩니다. 마지막 업데이트..
텐서플로우를 사용한 색 인식 코드를( Color Recognition ) 테스트해본 결과입니다. 코드 출처 : https://github.com/dedo24397/ColorClassifier 2018. 10. 14 최초작성 2021. 02. 14 최종작성 - Python 3.7, Tens..
이미지 블러링은 이미지를 로우 패스 필터 커널로 컨벌루션하는 것입니다. 이미지에서 고주파인 노이즈가 흐려지게 됩니다. 이때 같은 고주파인 선도 같이 흐려지게 됩니다. 마지막 업데이트 - 2018. 10. 11 다음..
threshold 함수와 adaptiveThreshold함수를 사용한 영상 이진화를 다루고 있습니다. 마지막 업데이트 - 2018. 10. 5 다음 OpenCV Python 튜토리얼을 참고하여 강좌를 비정기적로 포스팅하고 있습니다. https://doc..
warpPerspective 함수를 사용하여 퍼스펙티브 변환(Perspective Transformation)을 구현합니다. 퍼스펙티브 변환에서 원본 이미지의 모든 직선은 출력 이미지에서 직선으로 유지됩니다. 퍼스펙티브 변환 행렬을 찾..
warpAffine 함수를 사용하여 아핀 변환(Affine Transformation)을 구현합니다. 아핀 변환에서 원본 이미지의 모든 평행선은 출력 이미지에서 여전히 평행합니다. 아핀 변환 행렬을 찾으려면 입력 이미지의 3점과..
resize() 함수를 사용하여 이미지를 확대 및 축소하는 방법을 다루고 있습니다. 마지막 업데이트 - 2018. 10. 3 다음 OpenCV Python 튜토리얼을 참고하여 강좌를 비정기적로 포스팅하고 있습니다. https://docs.op..
warpAffine함수를 사용하여 이미지를 이동 및 회전하는 방법을 다루고 있습니다. 마지막 업데이트 - 2018. 10. 3 다음 OpenCV Python 튜토리얼을 참고하여 강좌를 비정기적로 포스팅하고 있습니다. https://docs.o..
FusedLocationProviderClient를 사용하여 Google Map에 현재 위치를 표시하는 예제입니다. 2018. 10.2 2019. 7. 19 androidx 관련 내용 추가 2019. 8. 15 SupportMapFragment로 변경 2020. 9. 12 테스트 및 수정 (..
동영상의 배경을 제거하고 움직이는 물체를 검출하는 데 사용할 수 있는 Background Subtraction 예제 입니다. OpenCV에서 제공하는 Background Subtraction 알고리즘 중 하나인 BackgroundSubtractorMOG2를 사용..
Google Cloud Speech-to-Text API 서비스 계정 키를 발급받아서 샘플 코드를 실행하는 방법을 설명합니다. 결제 신용카드를 등록해야 할 수 있습니다. 2018. 9. 21 최초작성 2020. 11. 3 최종작성 1. Cloud Speech..
원본 RGB 영상에서 마우스 클릭하면 해당 색에 대응하는 HSV 공간의 색을 계산하여 일정 범위내로 색을 추출하는 예제입니다. 마지막 업데이트 - 2018. 10. 23 포스팅 내용을 개선하여 웹캠 영상에서 파란색 물..
이미지의 투명도를 조정하여 두 개의 이미지가 겹쳐보이게 하는 블렌딩(Blending)을 다룹니다. 마지막 업데이트 - 2018. 9. 18 다음 OpenCV Python 튜토리얼을 참고하여 강좌를 비정기적로 포스팅하고 있습니다. h..
깃허브에 있는 차선인식 파이썬 코드를 C++로 변환후 분석해 본 결과물입니다. 원본 코드 https://github.com/georgesung/road_lane_line_detection/blob/master/lane_lines.py 최초 작성 - 2018. 9. 17 ..
뉴럴 네트워크(Neural Network)를 사용하여 직접 촬영한 손글씨 이미지로부터 숫자를 인식시켜 보았습니다. 지난번 포스팅과 데이터 훈련 시키는 방식만 다르기 때문에 1 ~ 6 번까지는 동일한 내용입니다. Tensorf..
이미지를 채널별 이미지로 분리하는 방법과 채널별 이미지를 합치는 방법을 설명합니다. 마지막 업데이트 - 2018. 9. 14 다음 OpenCV Python 튜토리얼을 참고하여 강좌를 비정기적로 포스팅하고 있습니다. https:/..
안드로이드 갤러리에 있는 JPG 이미지 파일을 PC의 자바 서버 프로그램으로 전송하는 예제입니다. 최근들어 관련 질문이 많아져서 만들어봤습니다. 참고하세요. 기존 포스팅의 코드를 수정해서 사용해야 합니다...
네이버 베스트셀러 주간 순위에 있는 책의 정보를 가져오는 예제입니다. 첫페이지에 있는 25권의 책목록에서 링크를 추출하여 각 추출된 링크로 접속하여 책이름, 저자, 가격 정보등을 출력합니다. 최초 작성 2018..
Logistic Regression을 사용하여 직접 촬영한 손글씨 이미지로부터 숫자를 인식시켜 보았습니다. 텐서플로우 2.0에서 텐서플로우 1.x 코드를 실행하는 방법을 설명합니다. Tensorflow 2.0에서 Tensorflow 1.x 코드..
입력 데이터를 사용한 훈련이 완료된 후, 변수(tf.Variable)에 저장되어 있는 모델 파라미터를 파일로 저장했다가 필요시 불러와 사용하는 방법을 다루고 있습니다. MNIST를 기반으로 손글씨를 인식시키려고 진행..
텐서플로우로 구현한 Logistic Regression입니다. MNIST 데이터를 가지고 손글씨 이미지를 훈련시키는 과정을 설명하고 있습니다. 다음 포스팅에서는 실제 손글씨를 촬영한 이미지를 인식하도록 해봅니다. 다음 사..
저수준 API로 작성된 MNIST 코드에서 사용하는 tf.reduce_mean 함수에 대해 살펴봅니다 import tensorflow as tf x = tf.constant([[1., 3.], [2., 6.]]) sess = tf.Session() print(sess.run(x)) print(sess.run(..
저수준 API로 작성된 MNIST 코드에서 사용하는 tf.argmax 함수에 대해 살펴봅니다. 2018. 8.29 최초작성 2020. 8. 1 내용 확인 및 Tensorflow 2.x에 맞게 수정 tf.argmax 두번째 인자값의 범위는 [-rank(input), r..
텐서플로우를 위한 가상환경(Virtualenv)에서 OpenCV를 사용할 수 있도록 라이브러리 파일을 복사해와야 합니다. 두가지 방법이 있습니다. OpenCV 소스코드로부터 컴파일 pip를 이용하여 설치 OpenCV 소스코드로부..
MNIST에 포함되어 있는 손글씨 이미지와 이미지가 의미한 숫자를 기록해 놓은 라벨을 출력해보는 방법을 설명합니다. 예전에 보았던 텐서플로우 초보자 가이드(?)에선 28 X 28 사이즈의 이미지를 크기 784(=28x28)..
텐서플로우로 구현한 Linear Regression입니다. 다음 사이트에 있는 텐서플로우 예제들을 공부한 결과를 비정기적으로 올릴 예정입니다. https://github.com/aymericdamien/TensorFlow-Examples 텐서플로우 2.0에..
텐서플로우에서 행렬 계산하는 방법을 설명합니다. 다음 사이트에 있는 텐서플로우 예제들을 공부한 결과를 비정기적으로 올릴 예정입니다. https://github.com/aymericdamien/TensorFlow-Examples 텐서플로우 2.0..
DLib를 사용하여 Android에서 얼굴 검출(Face Landmarks Detection)하는 방법을 진행하여 보았습니다. 캡처 버튼을 클릭하여 사진을 찍고, 검출 버튼을 눌러서 얼굴을 검출합니다. 인터넷에서 찾아본 결과와 달리..
플레이스 홀더(tf.placeholder)에 대해 알아봅니다. 다음 사이트에 있는 텐서플로우 예제들을 공부한 결과를 비정기적으로 올릴 예정입니다. https://github.com/aymericdamien/TensorFlow-Examples 텐서플로우 2...
간단한 계산을 하는 텐서플로우 프로그램을 통해 어떻게 동작하는지 알아봅니다. 다음 사이트에 있는 텐서플로우 예제들을 공부한 결과를 비정기적으로 올릴 예정입니다. https://github.com/aymericdamien/Tensor..
첫번째 예제는 텐서플로우를 사용하여 “Hello, Tensorflow!”를 화면에 출력합니다. 다음 사이트에 있는 텐서플로우 예제들을 공부한 결과를 비정기적으로 올릴 예정입니다. https://github.com/aymericdamien/Te..
안드로이드 6.0 마시멜로 ( API 23 ) 이상부터 안드로이드 디바이스의 자원을 사용하려면 런타임 퍼미션( runtime permissions)이 필요합니다. 본 포스팅에서는 런타임 퍼미션을 체크하고 요청하는 방법을 설명하..
간단한 메시지를 보여주기 위해 사용되는 Snackbar와 Toast의 동작을 비교해보는 예제 코드입니다. Toast는 지정한 일정시간이 지나야 화면에서 사라지지만 Snackbar의 경우에는 사용자의 입력에 반응하여 바..
Recyclerview를 스크롤시 현재 화면에 보여지는 첫번째 데이터 인덱스와 마지막 데이터의 인덱스를 보여주는 테스트해보기 위해 작성되었습니다. 다음 포스팅의 코드를 기반으로 변경 및 추가해야 할 부분만 설명..
RecyclerView에서 데이터를 추가/삭제/편집할 수 있도록 구현한 예제입니다. 아래 포스트를 수정하여 진행합니다. 아래 포스트를 먼저 진행하세요. Android RecyclerView 간단한 예제 http://webnautes.tistory.co..
안드로이드 앱에 BottomNavigationView(Bottom Navigation Bar)를 추가하는 방법을 설명합니다. BottomNavigationView(Bottom Navigation Bar) 는 Design Support Library v25에서 추가되었습니다. Bottom Navig..
Android에서 SVG 아이콘을 사용하는 방법을 다룹니다. 1. https://material.io/tools/icons/에서 원하는 아이콘을 찾습니다. 찾은 아이콘을 선택하고나서 왼쪽 아래에 보이는 Selected Icon을 클릭합니다. 2. 아..
Google Calendar에 캘린더를 생성하고 이벤트를 추가 및 이벤트 리스트를 가져오는 예제코드 입니다. 1. Google Calendar API 사용 설정 2. AndroidManifest.xml 3. build.gradle 4. activity_main.xml 5. MainAct..
날짜 선택 가능한 달력 예제입니다. 다음 링크에 있는 캘린더 라이브러리를 사용합니다. https://github.com/ApplikeySolutions/CosmoCalendar 2018.07.27 최초작성 ~~~~~~~~ 2020. 01. 06 androidx로 변경 새로운..
Custom Adapter를 사용하여 RecyclerView를 구현하는 방법을 설명합니다. 최초작성 2018. 7. 23 최종작성 2019. 8. 22 실행화면입니다. 데이터 추가 버튼을 눌러주면 아이템이 RecyclerView에 추가됩니다. 화면..
안드로이드 구글맵의 마커 아이콘을 PNG 이미지로 변경하는 방법을 다룹니다. 1. Google Map을 위한 Android 프로젝트 생성 2. 프로젝트에 PNG 이미지 파일 추가하기 3. 구글맵 마커 변경하기 2018. 7. 18 - 최..
윈도우에 Apache2 + PHP + MariaDB 조합으로 웹서버를 쉽게 구축할 수 있게 도와주는 WampServer 설치 및 사용방법을 다루고 있습니다. 2018. 7 . 12 최초 작성 2019. 11. 17 2020. 07. 16 MySQL 설치 방법 변경됨..
Windows에 Python2와 Python3를 같이 설치하여 사용하는 방법을 설명합니다. 1. Python 설치 2. PyCharm 설치 3. Virtualenv 사용하도록 프로젝트 생성 4. 설치되어 있는 파이썬을 직접 사용하도록 프로젝트 생성..
Visual Studio 2017에서 C/C++를 위한 콘솔 프로젝트를 작성하는 방법을 설명합니다. Visual Studio 2017 설치하는 방법은 다음 포스팅을 참고하세요 C++, Win32 API, MFC 개발을 위해 Visual Studio Community 20..
Visual Studio 2017에서 WinAPI( Windows API )를 사용한 프로그램을 작성하는 방법을 설명합니다. Visual Studio 2017 설치하는 방법은 다음 포스팅을 참고하세요 C++, Win32 API, MFC 개발을 위해 Visual Stud..
Windows 10에 Python2와 Python3를 설치하는 방법을 소개합니다. 배포 중인 최신 버전이 글 작성 시점과 다를 수 있습니다. 1. Python 3 설치 2. Python 2 설치 3. Python 2와 Python 3 함께 사용하기 2018. 7...
간단하게 ArrayList, ArrayAdapter와 ListView를 같이 사용하는 방법을 다루었던 첫번째 포스팅의 코드를 수정하여 진행합니다 ArrayList, ArrayAdapter와 ListView - 1. 기본적인 사용 방법 http://webnautes.t..
주어진 데이터셋을 신경망에서 학습을 시키기 전에 특징(feature)와 레이블(label)을 무작위로 뒤섞을 필요가 있습니다. 정렬된 데이터셋을 그대로 사용하면 학습이 잘 되지 않을 수 있기 때문입니다. 특징과 레이..
OpenCV를 사용하여 바닥에 놓은 트럼프 카드를 인식하는 간단한 프로젝트를 만들어 보았습니다. 실행결과와 코드 설명은 유튜브 영상을 참고하세요. 테스트에 사용한 이미지입니다.
이번 영상에서는 뷰티플수프를 사용하여 기상청의 동네예보를 웹크롤링합니다. from urllib.request import urlopen from bs4 import BeautifulSoup html = urlopen("https://www.weather.go.kr/weather/forecast/..
텐서플로우를 삭제했다가 재설치시 다음과 같은 에러가 나는 경우가 있습니다. Uninstalling setuptools-40.8.0: Could not install packages due to an EnvironmentError: [WinError 32] 다른 프로세스가 파일을..
프로젝트가 생성된 경로에 한글 폴더 이름이 포함되어 있는 경우 PyCharm의 터미널에서 pip 명령을 사용시 다음과 같은 에러가 날 수 있습니다. 같은 버전의 PyCharm과 python을 사용하는데도 테스트한 PC에 따라..
최종 수정 2020. 6. 21 텐서플로우를 설치한 후, 텐서플로우 모듈시 다음과 같은 에러가 발생할 수 있습니다. >>> import tensorflow as tf ........................................................ ImportErro..
한글 형태소 분석을 위해 사용되는 KoNLPy(“코엔엘파이”)를 설치해서 테스트 해보았습니다. 최초작성 2020. 1. 11 1. 자바 JDK를 설치합니다. 여기에선1.8을 설치했습니다. https://www.oracle.com/technetwork/..
텐서플로우 2.0에서 Session 사용 방법만 바뀐지 알았는데 디폴트로 자동으로 생성되던 Graph가 사라졌나봅니다. Graph를 따로 생성해줘야 하는군요. 예전에 질문에 답했던 내용인데 포스트로 정리해봅니다. imp..
NumPy 함수를 사용하다보면 axis 아규먼트를 사용하는 것이 있습니다. 어떤 의미일까 고민해보다가 적어봅니다. 최초 작성 2019. 11. 7 넘파이 모듈을 임포트 하고 크기 2 x 3 x 4인 넘파이 배열에 0~23까지 숫자..
손글씨 숫자 분류를 하는 신경망을 만드는 케라스 예제를 다루고 있습니다.
OpenCV Python API를 사용하여 카메라로부터 영상을 캡처하는 경우.. 프로그램 종료시 보이는 메시지입니다. 프로그램을 실행하는데 문제가 없어서 무시해도 되지만.. 다음처럼 해서 안보이도록 할 수 있습니다...
C++, Python, Android에서 OpenCV의 Extra 모듈과 nonfree 모듈 사용하는 방법을 정리해보았습니다. 추가할 내용이나 틀린 점이 있으면 댓글로 알려주시면 감사하겠습니다. 현재 다음 두 개의 깃허브에서 OpenCV가..
Android에서 TensorFlow Lite를 사용하여 카메라에 비춘 손글씨 숫자를 인식시켜보았습니다. 조명환경이나 카메라 차이로 인해 결과가 달라서 이진화 부분의 아규먼트를 수정할 필요가 있을 수 있습니다.
깃허브의 저장소에서 특정 하위 디렉토리만 다운로드 하는 방법을 설명합니다. 최초 작성 2019. 10. 8 opencv를 위한 깃허브 저장소에서 samples / python 에 있는 tutorial_code 디렉토리만 다운로드 해봅니다...
안녕하세요. 웹나우테스입니다. 그동안 "멈춤보단 천천히라도" 블로그에 방문해주신 여러분 덕에 "파이썬과 NumPy로 배우는 선형대수" 책을 출간하였습니다. 감사하는 마음으로 열 분에게 책을 나누어 드리려고 합..
Tensorflow와 OpenCV를 사용하여 웹캠에 비춘 손글씨 숫자를 인식시켜보았습니다. 최초 작성 2019. 10. 1 관련 최근 포스트 [Machine Learning & Deep Learning/Tensorflow 강좌] - Keras와 OpenCV를 사용하여 손..
파이썬의 TCP 소켓을 사용하여 웹캠에서 캡쳐한 이미지를 전송하는 서버와 클라이언트를 간단히 만들었습니다. 웹캠으로부터 이미지 캡쳐는 OpenCV를 사용하였습니다. 서버에는 두 종류의 쓰레드를 생성합니다. 웹..
파이썬에서 소켓을 사용한 TCP 서버/클라이언트 예제에 대해 다룹니다. 클라이언트가 서버에 접속하여 통신이 시작되는 방식입니다. 1. TCP 소켓 2. 간단한 에코 서버, 클라이언트 예제 3...
Visual Studio 2017/2019에서 OpenCV 프로젝트 설정을 템플릿을 만들어서 새로운 OpenCV 프로젝트를 쉽게 만들 수 있는 방법을 다룹니다. 2019. 9. 16 최초작성 2020. 8. 17 Visual Studio 2019 반영 다음 포스트..
안녕하세요. 웹나우테스입니다 : ) OpenCV를 사용하여 책을 검출한 후, 정면에서 본 장면으로 변환합니다.
OpenCV를 사용하여 손을 검출 및 인식하는 방법에 대해 다룹니다. 현재 두가지 방법으로 코드가 작성되었습니다. Background Subtraction을 사용한 방법과 HSV 공간에서 살색을 검출한 방법입니다. 다음 에러가..
미러 주소를 변경하여 라즈비안에서 패키지 다운로드 속도를 올리는 방법을 소개합니다. 최초작성 2019. 8. 29 https://www.raspbian.org/RaspbianMirrors 에서 South Korea를 찾아 주소를 복사합니다. 여기에서는..
안드로이드에서 옵션 활성화 여부를 사용자에게 결정하도록 하는데 사용하는 스위치를 추가해보았습니다. 깃허브에서 스위치 버튼 라이브러리를 찾아서 구현하고 나서.. 스위치가 안드로이드 기본 라이브러리가 포..
다음 깃허브에 있는 텐서플로우 2.0 예제코드를 분석해보려합니다. https://github.com/aymericdamien/TensorFlow-Examples/tree/master/tensorflow_v2 최초작성 2019. 8. 28 최종작성 2019. 9. 1 우선 다음 명령..
OpenCV의 딥러닝 모듈을 사용하여 안드로이드폰에서 딥러닝 네트워크를 실행하는 방법을 소개합니다. MobileNet-SSD detection network를 caffee로 구현한 것을 안드로이드 폰에서 실행시켜 봅니다. OpenCV 튜토리..
파이썬에서 코드 실행시간을 측정하는 방법을 찾아 테스트해보았습니다. 파이썬 3.3+ 이상부터 perf_counter와 process_time를 사용할 수 있는데 차이점은 다음과 같습니다. perf_counter는 sleep 함수를 호출하여..
버추얼박스에 설치된 우분투에서 웹캠을 사용하는 방법을 다룹니다. 최초작성 2019. 8. 23 버추얼박스의 가상머신 창에 있는 메뉴를 보면 아래 스크린샷처럼 장치 > 웹캠에서 컴퓨터에 연결되어 있는 웹캠이 보입..
현재 위치 주변의 장소정보를 가져오는 Places SDK for Android의 예제를 실행시켜 보았습니다. 사용한 원본 코드는 아래 링크에 있습니다. v.3.x BETA 버전과 v.2.x 버전 예제가 구분되어 존재합니다. https://..
Visual Studio Code를 사용하여 Python 프로그래밍 환경을 만드는 방법을 다루고 있습니다. pip를 사용하여 Tensorflow와 OpenCV를 설치하면 Visual Studio Code를 사용하여 프로그래밍이 가능해집니다. 그동안 사..
안드로이드폰이 꺼진 상태에서 발생한 알람 메시지를 화면에 보여주기 위해 화면을 켜는 방법을 소개합니다. 다음 포스트에서 매일 정해진 시간에 알람이 울리도록하는 앱을 소개했었습니다. Android 알람 앱 예제..
매일 일정한 시간마다 알람이 울리는 안드로이드 앱을 만들었습니다. 구현 내용은 다음과 같습니다. 매일 설정해놓은 시간에 알람 소리가 울리고 노티피케이션을 띄웁니다. 노티피케이션을 선택시 앱이 실행됩니다..
기본 기능에 충실한 일기장 앱을 만들어 봤습니다. 하루글이라고 이름 붙였는데 검색 순위가 높지 않네요. 특이한 이름을 붙여야 검색 순위가 높아질 가능성이 있다네요. 하루글에는 현재 다음 기능이 구현되어..
어떻게 사용하는지 알기 어려웠던 컨스트레인트 레이아웃에 조금 친숙해진 기념으로 만든 영상입니다. 다음 순으로 영상이 올라가게 됩니다. 도움이 되었으면 좋아요와 구독을 해주세요. 감사..
간단히 Camshift 이론을 설명하고 webcam과 video 영상에 ROI를 지정하여 동작하도록 C++로 작성된 Camshift 예제 코드를 동작시켜 봅니다. #include #include using namespace cv; using namespace std; // 아래..
이미지에서 검출된 컨투어 영역에 특정 이미지를 텍스쳐로 넣는 예제입니다. 실행시키면 다음처럼 검출된 원 모양 컨투어 내부에 이미지 일부를 보여줍니다. 최초작성 2019. 7. 23 최종작성 2019. 8. 18 테스트에..
OpenCV에서 이미지의 픽셀에 접근하는 방법을 픽셀 개념부터 설명합니다. 추가로 C++에서 OpenCV 이미지의 픽셀에 접근하는 방법을 비교 소개하고 있는 다음 글도 참고하세요. OpenCV C++ 강좌 - 4. Mat에 ..
텐서플로우 2.0 베타를 설치해보고 간단한 예제를 실행시켜 봅니다. 최초 작성 2019. 7. 14 다음 명령으로 Tensorflow 2.0 Beta 패키지를 설치합니다. 글 작성시점에서는 아직 정식 버전이 아닙니다. pip install..
우선 안드로이드 스튜디오로 프로젝트 생성시 Use androidx.* artifacts 항목이 체크해제 되어있나 확인해보세요. 다음 캡쳐화면처럼 해당 항목이 비활성화 되어 있다면.. SDK Manager에서 Android 9.+(Q)를 체크..
플레이스토어에서 다운로드 받아 처음 실행하면 무조건 에러나고 두번째 실행시에는 문제 없는 현상에 대한 해결방법입니다. 다행히 안드로이드 스튜디오의 로그캣에서 에러 메시지를 확인할 수 있었습니다...
간단히 Meanshift 이론을 설명하고 webcam과 video 영상에 ROI를 지정하여 동작하도록 C++로 작성된 Meanshift 예제 코드를 동작시켜 봅니다. 2019. 7. 2 2019. 7. 29 히스토그램생성시 Hue만 사용하도록 수정..
웹캠 영상에 실시간으로 ROI 하는 예제입니다. #include #include using namespace cv; using namespace std; bool mouse_is_pressing = false; int start_x, start_y, end_x, end_y; int step = 0; Mat img_color..
얼굴 인식에 사용하는 Haar Cascades에 대해 간단히 알아보았습니다. 아직 공부중이라 정확하지 않은 내용이 있을 수 있습니다 ;; 최초 포스팅 2019. 6. 28 Haar Cascade는 머신 러닝기반의 오브젝트 검출 알고리..
OpenCV를 사용하여 얼굴에 선글라스를 씌우는 방법을 소개합니다. 테스트에 사용한 이미지입니다. Visual Studio 2019를 기준으로 소스코드(main.cpp)가 있는 폴더에 두개의 xml 파일과 png 파일을 복사해..
라즈베리파이3에서 서보 모터를 제어하는 방법을 다룹니다. Python 언어와 C 언어로 다루는 방법을 설명하며 이후 웹캠과 초음파 센서를 얹어 사용할 예정입니다. 2019. 6. 3 (영상은 업로드 중입니..
해리스 코너 디텍터를 사용하여 검출한 코너점을 사용하여 두 장의 이미지를 매칭하는 예제입니다. 코너점의 방향을 기준으로 이미지 패치를 회전시키서 매칭점인지 비교하기 때문에 다른 부분의 코너점인데 매칭..
최근 업데이트된 글이 있습니다. Visual Studio Code에서 MinGW를 사용하여 OpenCV 코드 컴파일 하는 방법 https://webnautes.tistory.com/1443 Visual Studio Code에서 OpenCV 코드를 컴파일하기 ..
대시보드에서 마우스 우클릭하여 장치 포털 열기를 선택합니다. 장치 포털 페이지에서 왼쪽에보이는 Connectivity > Network를 선택하고 오른쪽에서 접속할 무선 공유기(AP)를 선택합니다. 아래쪽에 보이는 Key..
안드로이드에서 Surf를 사용하여 이미지를 매칭하는 예제입니다. 우선 다음 포스트 내용을 진행하여 안드로이드용 OpenCV를 새로 빌드해서 사용해야 합니다. Android용 OpenCV 빌드하는 방법(contrib 포함) https:..
카메라로부터 캡처된 영상에 관심영역(ROI)을 지정하여 영상처리 하는 예제입니다. 위치는 텍스트로된 코드에서 확인하고 코드 복사는 코드블록에 있는 것을 사용하세요. 업데이트 2019. 5. 11 유튜브 영상 또..
패키지 업데이트 후.. 블루투스를 사용할 수 없게 되어서 해결방법을 찾아봤습니다. PPA에서 최신 버전 bluz를 다운로드 받아 설치하면 해결됩니다. 다음 저장소를 추가하고 sudo add-apt-repository ppa:bluetoot..
가벼워서 자주 사용하게 되는 Sublime Text 3에서 OpenCV 프로그래밍이 가능하도록 해보았습니다. 영상 만들고 나니 Visual Studio Code도 되겠구나 싶어지네요^^; 코드마다 매번 새로운 프로젝트..
Visual Studio 2019에서 C/C++를 위한 콘솔 프로젝트를 만드는 방법을 설명합니다.
Visual Studio 2019에서 사용하기 위해 OpenCV를 빌드하는 방법을 다룹니다. Extra 모듈인 contrib를 포함시켜 빌드합니다. Python 용이 필요하면 진행하기 전에 Python을 설치하세요. 빌드 후 자동으로 파이썬의..
C/C++, Win32 API, MFC 개발을 위해 Visual Studio Community 2019를 설치하는 방법을 다룹니다.
우선 MobaXterm이 필요합니다. 아직 사용안한다면 다음 링크에서 Home Edition을 다운로드 받아 설치하세요. MobaXterm은 SSH 접속 할 수 있는 터미널 프로그램으로 터미널 환경에서 Raspberry Pi에 있는 GUI 프로..
색깔있는 도형에 도형의 색 이름을 표시해주는 예제 코드입니다. 컨투어로 도형 내부 영역을 검출한 다음 평균으로 도형의 색을 계산합니다. 그리고 미리 지정해놓은 색들과 거리를 계산하여 가장 가까운 색으로..
비교적 최근에 파이썬에 익숙해진 경험을 살려 뭐해볼까 하다가 기초 파이썬 강좌를 만들기 시작했습니다. 제 나름의 방식대로 진행할꺼라 어떨지 모르겠네요 : ) 1. 프로그래밍이 뭔가요? 2. 소스코드는 ..
윈도우에 VMware를 설치하고 가상머신을 생성하여 Ubuntu를 설치하는 방법을 설명합니다.
Visual Studio 2017을 위해 미리 컴파일된 GLS 라이브러리를 사용해본 결과입니다.. GNU 공식 홈페이지(https://www.gnu.org/software/gsl/ )에서는 소스 코드 패키지만 배포하고 있기 때문에 사용하려면 플랫..
가상 머신 종료시 "현재 시스템 상태 저장하기"로 종료한 경우 간혹 부팅이 안되는 경우가 있습니다. 에러메시지를 확인시 다음과 같은 메시지가 보일때 해결방법입니다. Failed to load unit 'vga' (VERR_SSM_..
새로운 라이브러리를 프로젝트에 추가한 다음 다음과 같은 에러가 발생했습니다. 문제가 없는 코드인데 이상하다 싶어서 에러 메시지들을 검색해본 결과 원인을 찾았습니다. Process: com.tistory.webnautes.examp..
다음(카카오) 지도를 안드로이드에서 사용하기 위해 필요한 작업과 지도에 현재 위치를 표시하는 예제를 포함하고 있습니다. . 최초 작성 2019. 3. 6 최종 작성 2019. 9. 26 준비 작업부터 앱 실행까지 설명합니다..
이미지와 텍스트가 포함된 커스텀 리스트뷰를 안드로이드의 다이어로그(alertdialog)에 보여주는 예제입니다. 리스트뷰에서 항목을 선택시 액티비티의 뷰에 선택한 항목을 보여주도록 구현되었습니다. 다음처럼 실..
이미지에서 자유 영역을 지정한 부분을 자르는 예제입니다. 다음 링크에 있는 코드를 사용했습니다. https://stackoverflow.com/questions/18439246/android-free-cropping-of-image 다음처럼 동작합니다. 1. 처음..
LocationManager와 Geocoder를 사용하여 현재 위치에 대한 주소를 가져오는 예제입니다. 구글맵을 사용하지 않고 현재 위치를 가져오는 방법입니다. 2019. 3. 3 - 최초작성 2019. 11. 21 - androidx로 변경 다음..
CardView에 모서리가 둥근 ImageView를 꽉채우는 방법과 CardView에 모서리가 둥근 ImageView와 TextView를 함께 추가하는 방법을 소개합니다. RecyclerView의 아이템으로 사용하면 UI가 깔끔해지집니다. 먼저 C..
매터리얼(Material) 컴포넌트인 MaterialButton를 사용하여 모서리가 둥근 버튼을 만드는 방법입니다. 1. build.gradle에 com.android.support:design을 추가합니다. dependencies { implementation fileTre..
앱 설치시 홈 화면에 아이콘을 설치하는 방법을 다룹니다. Android 8.0 API 28에서도 동작하는 방법입니다. 1. AndroidManifest.xml 매니페스트 파일에 다음 권한을 추가합니다. 2. MainActivity.java 파일의 onCr..
Android에서 PdfBox 라이브러리를 사용하여 이미지와 텍스트를 PDF로 저장하는 예제입니다. 최초작성 - 2019. 2. 23 다음 글에서 작성했던 앱의 내용을 PDF로 저장하도록 수정해보았습니다. Android ScrollView 예..
Android에서 SQLite를 사용하여 테이블 생성시 문제가 생겼던 점을 포스팅합니다. SQLiteOpenHelper를 상속받은 클래스를 사용하여 데이터베이스 파일을 관리하지 않으면 생길 수 있는 상황인 듯합니다. 다음과 같..
스피너에 이미지를 추가하는 예제입니다. 실행시키면 다음처럼 화면 중앙에 스피너가 보입니다. 디폴트로 사과가 선택된 상태입니다. 스피너를 터치하면 선택 가능한 목록에 이미지와 문자열이 같이 보입니다. 항..
SimpleDateFormat를 사용하여 현재 날짜를 출력하는 예제입니다. Date currentTime = Calendar.getInstance().getTime(); SimpleDateFormat weekdayFormat = new SimpleDateFormat("E..
안드로이드 앱 설치후 보이는 런처 아이콘을 변경하는 방법을 다룹니다. 최초 작성 2019. 2.24 다음 링크에서 받은 구름 모양 png 이미지 파일을 사용했습니다. https://www.flaticon.com/free-icon/cloud_149209#..
application 태그의 android:label과 activity 태그의 android:label의 값에 다른 이름을 지정하고 테스트를 진행해보았습니다. <?xml version="1.0" encoding="utf-8"?> package="com.tistory.webnautes.my..
ScrollView 내부에 ImageView와 TextView를 같이 넣어서 화면 스크롤시 이미지와 텍스트 뷰가 스크롤되도록 구현한 예제입니다. 최초 작성 2019. 2. 21 실행시키면 다음 처럼 동작합니다. 예제를 실행시키면 위..
이미지뷰를 클릭하면 갤러리 또는 포토에 있는 이미지를 가져와 이미지뷰에 보여주는 예제입니다. 작성 2019. 2. 20 수정 2019. 4. 25 1. 실행시키면 이미지 뷰에 미리 지정해놓은 디폴트 이미지가 보입니다...
화면을 터치하면 툴바를 보여주는 Toolbar 예제입니다. 다음처럼 동작합니다. 화면을 터치할 때 마다 툴바가 보여졌다 안보여졌다합니다. 아이콘을 선택하면 어떤 메뉴를 선택했는지 보여줍니다. 오른쪽 아이콘을..
우분투 부팅시 검은화면이 나온 경우 해결한 방법을 소개합니다. 전에도 같은 증세가 있어서 우분투를 재설치 했었는데 원인을 찾았습니다. 2021. 7. 8 최초작성 윈도우와 멀티 부팅으로 우분투를 사용하는 경우..
Ubuntu 20.04에 Miniconda 설치 후, Tensorflow와 OpenCV 설치하는 방법을 다룹니다. 2021. 7. 7 최초작성. 2021. 7. 8. 다시 검토(conda activate 실행 안되는 문제 해결, 가상환경 위치관련 수정) 참고 https://..
pthread를 사용하여 수신하는 문자열을 출력해주도록 작성된 소켓 서버 / 클라이언트 예제입니다. 원본 코드 출처는 아래 깃허브 저장소입니다. https://github.com/shineyr/Socket 실행 결과는 다음과 같습니다..
CSV 파일을 줄단위로 읽어서 공백을 제거한 후, 컬럼 별로 나누어서 출력하는 예제입니다. 다음 3곳의 코드 참고하여 작성했습니다. https://stackoverflow.com/questions/12911299/read-csv-file-in-c https://st..
Keras에서 사용하는 Data Augmentation을 이미지로 출력하여 확인해봅니다. 2021. 06. 29 최초작성 rotation_range=60 0~ 60도 사이의 임의의 각도로 이미지를 회전시킵니다. fill_mode를 nearest로 선택했기 때문..
Keras로 학습하는 도중에 "UserWarning: Possibly corrupt EXIF data"라는 경고가 보였습니다. 무시해도 될거 같았지만 구글링하여 이미지의 EXIF 데이터를 제거하여 해결했습니다. ( https://stackoverflow.co..
종이에 쓴 손글씨 숫자를 인식하여 세븐 세그먼트에 출력하는 프로젝트를 만들어봤습니다. 2021. 6. 16 최초작성
Raspberry Pi에서 Tensorflow의 load_model을 사용하여 h5 파일 로드시 다음과 에러가 날 경우 해결방법입니다. OSError: SavedModel file does not exist at: ./model.h5/{saved_model.pbtxt|saved_model...
Raspberry Pi 4에 Tensorflow를 설치하는 데에는 문제가 없었는데 $ pip3 install tensorflow Tensorflow 모듈을 임포트하려고 하니 에러가 발생했습니다. $ python3 Python 3.7.3 (default, Jul 25 2020, ..
Python의 RPi.GPIO 모듈을 사용하여 Raspberry Pi 4에 연결한 7 Segment에 0 ~ 9 숫자를 표시하는 방법을 다룹니다. 2021. 6. 13 최초작성 우선 필요한 패키지를 설치해줍니다. sudo apt install rpi.gpio 설치에..
로지텍 웹캠 C920 처럼 특정 웹캠의 경우 윈도우에서 OpenCV를 사용하여 웹캠으로 부터 영상을 가져오려고 하는 경우 일정시간을 기다려야 영상이 보이기 시작할 수 있습니다. 2021. 6. 10 최초작성 이 경우 벡엔..
FFmpeg를 사용하여 webcam을 RTSP 스트리밍하고 OpenCV에서 해당 영상을 확인하는 과정을 다룹니다. 2021. 6. 10 최초작성 1. 아래 링크에서 rtsp-simple-server windows 버전을 다운로드받아 적당한 곳에 압축을..
Python에서 C언어 스타일의 조건 처리 전처리문을 사용하는 방법을 다룹니다. 2021. 6. 9 최초작성 설치 pip3 install pypreprocessor 설치시 에러 나는 경우 해결 방법 ( https://hbesthee.tistory.com/1661 ) gi..
이미지 분류를 하려고 하는데 model.fit 부분에서 다음과 같은 에러가 발생했습니다. tensorflow/core/framework/op_kernel.cc:1755] Unknown: OSError: cannot identify image file 2021. 6. 7 최초작성 2021. 8...
2021. 5. 29 최초작성 # 일반적으로 함수를 호출하여 사용하는 방법입니다. def add(x, y): return x + y ret = add(10, 21) print(ret) # lamda에서 함수를 호출하여 사용합니다. ret = (lambda x, y: add(x, y))..
Visual Studio Code와 WSL ( Windows Subsystem for Linux ) 를 연결하여 C/C++ 컴파일 및 디버깅하는 방법을 다룹니다. 2021. 5 .23 최초작성 2021. 8. 1 윈도우에 Visual Studio Code를 설치합니다. Visual Stud..
우분투에서 크롬으로 트위터에 접속하여 한글로 글을 남기려면 오타가 많이 나서 사용하지 못할 정도네요. 한글 입력기를 바꾸어보면 해결된다고 해서 kime, uim 등으로 바꾸었지만 문제가 해결되지 않았습니다...
Ubuntu에서 darknet을 사용하여 Yolo v4 커스텀 학습하는 방법을 다루고 있습니다. 2021. 05. 16 최초작성 2021. 05. 28 darknet 설치후 Yolo v4 테스트 0. CUDA 및 OpenCV를 먼저 설치해야 합니다. Ubuntu 20.0..
디스크에 저장되어 있는 텍스트 파일을 입력으로 사용하여 텍스트 분류를 해봅니다. IMDB 데이터셋을 가지고 감성 분석 (Sentiment analysis)을 위해 이진 분류를 학습시킵니다. 텐서플로우 튜토리얼을 보며 작성..
AWS(Amazon Web Services)를 1년 동안 무료로 사용할 수 있는 프리 티어 가입부터 EC2 인스턴스 생성 및 SSH 접속까지 다룹니다. 2021. 05. 03 최초 작성 AWS 프리 티어를 사용하려면 계정을 우선 만들어야 합니다..
Ubuntu 20.04에 CUDA 11.2, cuDNN 8.1.0, OpenCV 4.5.1을 설치하는 방법을 다룹니다. NVIDIA 그래픽 카드 드라이버 설치 CUDA 11.2 설치 cuDNN 8.1.0 설치 OpenCV 4.5.1 설치 2021. 04. 24 최초작성 2021. 05...
Raspberry Pi Pico에서 USB Serial을 사용하여 터미널로 문자열을 전송하는 예제입니다. 2021 04. 24 - 최초작성 진행하기 전에 다음 포스트를 먼저 진행해야 합니다. Windows에서 Raspberry Pi Pico C++ 프로그래..
MinGW 용으로 OpenCV 4.5.1을 빌드하고 Visual Studio Code에서 OpenCV 코드를 컴파일하는 방법을 다룹니다. 2021. 4. 21 최초작성 1. 아래 링크에서 x86_64-posix-seh를 다운로드하여 설치합니다. https://source..
JavaScript를 사용하여 웹브라우저에서 RTSP 영상을 재생하는 예제입니다. 2021. 04. 04 최초작성 1. FFmpeg를 다운로드 받습니다. https://www.gyan.dev/ffmpeg/builds/ 압축을 풀어 C:\ffmpeg에 둡니다. C:\ff..
Windows에서 Raspberry Pi Pico C++ 프로그래밍을 하기 위해 필요한 작업들을 정리합니다. 아직 작성 중입니다. 2021. 3. 30 최초작성 2021. 4. 03 개별 프로젝트 빌드 방법 추가 참고한 문서에서는 Visual Studio..
C++에서 배열(array)와 벡터(vector)의 속도를 비교해보았습니다. 테스트 환경은 Ubuntu 20.04와 Visual Studio 2019입니다. 2021. 3. 27 최초작성 아래 링크를 보고 궁금해져서 간단히 테스트를 해보았습니다. ht..
Visual Studio Code에서 JavaScript를 실행하는 방법을 다룹니다. 2021. 03. 23 최초작성 1. 윈도우용 Node.js 설치 파일을 다운로드 받아 설치합니다. 아래 링크에서 Windows Installer (.msi) 항목에 있는 것 중..
윈도우에서 Node.js를 설치하고 Hello World 예제를 실행시켜봅니다. 2021. 03. 22 - 최초작성 1. 윈도우용 Node.js 설치 파일을 다운로드 받아 설치합니다. 아래 링크에서 Windows Installer (.msi) 항목에 있는..
Visual Studio Code에서 GDB를 사용하여 원격 디버깅하는 방법을 다룹니다. 진행을 위해 호스트는 윈도우가 설치된 노트북, 타겟은 라즈베리파이3를 사용했습니다. 2021. 2. 28 최초작성 관련 포스팅 GDB를 사용한..
GDB를 사용하여 원격 디버깅하는 방법을 다룹니다. 진행을 위해 호스트는 윈도우가 설치된 노트북, 타겟은 라즈베리파이3를 사용했습니다. 2021. 2. 28 최초작성 GDB는 대부분의 Linux 시스템에 사용되는 텍스트..
shared_ptr 객체를 전달받은 함수에서 사용 후, 자원이 해제되는지 확인한 결과입니다. 아직 C++에 익숙하지 못해서 제 맘대로 바꿔보면서 감을 익히는 중입니다. 2021. 02. 15 - 최초작성 shared_ptr 객체를 생성..
Visual Studio 2019용으로 libiconv 빌드하는 방법을 다룹니다. 본 포스팅에서는 Visual Studio 2019를 사용하여 진행하지만 Visual Studio 2008, 2010, 2015, 2017 용도 준비되어 있습니다. 같은 방식으로 진행하..
Visual Studio 2019에서 MySQL/MariaDB C API를 사용하는 간단한 예제를 테스트해보았습니다. 2021. 02. 08 최초작성 아래 링크에 접속하여 MariaDB Connector/C를 다운로드합니다. Oracle에서 다운로드 받으면 로..
버튼을 클릭하면 메시지 박스를 보여주는 간단한 WPF(Windows Presentation Foundation) 예제를 작성해보았습니다. 2021. 02. 03 최초작성 Visual Studio Installer에서 .NET 데스크톱 개발을 추가하면 C# 프로그..
오픈포즈(OpenPose)를 사용하여 손가락을 인식하는 코드를 살펴봅니다.
Hello World를 화면에 출력해보는 예제이다. 참고 http://www.blackwasp.co.uk/HelloWorld.aspx http://www.blackwasp.co.uk/HelloWorld_2.aspx 2021. 01. 31 - 최초 작성 2021. 02. 01 - 최종 작성 Visual Studio..
opencv\modules\core\include\opencv2\core\base.hpp의 342번째 줄에 있는 CV_Assert 매크로를 분석해보았다. #define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_F..
INI 파일 라이브러리(Leksys' INI Parser https://github.com/Lek-sys/LeksysINI )를 사용하여 INI 파일을 생성하고 값을 읽고 쓰는 예제입니다. 깃허브에서 iniparser.hpp 파일만 가져오면 예제를 동작시킬 수 있..
pthread의 pthread_create 함수에서 람다(lambda)를 사용한 예제입니다. 람다를 사용하면 따로 함수를 선언하지 않고 코드 내에 람다를 정의한 후, pthread_create에서 바로 사용할 수 있습니다. 주의할 점은 람다..
현재 폴더에 있는 지정한 파일의 전체 경로(절대 경로)를 얻는 예제입니다. 2021. 1. 14 최초작성 아래 링크에서 발견한 코드를 MinGW로 테스트하니 문제 없었지만. https://stackoverflow.com/a/17632322 #includ..
문자열을 일정 길이로 자르는 C++ 코드를 작성해보았습니다. 2021. 1. 12 - 최초작성 #include #include #include std::vector block_string(std::string input, int want_block_length) { std::vector ret; int l..
미리 CUDA 11.0을 위해 빌드되어 배포되는 OpenCV 4.4.0을 다운로드 받아 Python 3.7에서 사용하는 방법을 다루고 있습니다. 2021. 1. 12 최초 작성. 2021. 5. 19 최종 작성. nppc64_11.dll, cudnn64_8.dll 파일..
Windows 10에 CUDA 11.2와 cuDNN 8.1. 그리고 Tensorflow를 설치하는 방법을 설명합니다. 2021. 1. 10 최초작성 2021. 1. 11 Tensorflow 설치 방법 추가. Tensorflow GPU 2.4.0에서 CUDA 11 요구 2021. 6. 8 Tenso..
utf8과 cp949(euc-kr)간에 한글 인코딩 변환을 해본 예제입니다. 2020. 01. 08 - 최초작성 Ubuntu에서 테스트를 진행하여 입력이 UTF8 입니다. cp949로 변환했다가 다시 UTF8로 변환하여 정상으로 보이는 것을 확..
Visual Studio 2019에서 pthread 사용하는 방법을 다룹니다. 2021. 1. 4 최초작성 1. 아래 링크에서 pthreads-w32-2-9-1-release.zip를 다운로드 합니다. http://sourceware.org/pub/pthreads-win32/ 2. 압축을 풀..
C++의 shared_ptr 예제 및 사용방법을 다루고 있습니다. 아직 C++에 익숙하지 못해서 제 맘대로 바꿔보면서 감을 익히는 중입니다. 2020. 01. 01. 최초 작성 std::shared_ptr 이란 shared_ptr은 c++ 11이 제공하는..
Android 카메라 동영상 녹화 예제 코드입니다. 2020. 12. 27 최초작성 처음 시작시 권한 설정을 허용해야 합니다. RECORD를 클릭시 카메라 녹화가 시작되며 STOP을 클릭하면 영상이 저장되고 갤러리에서 해당..
이미지에서 텍스트 영역을 찾아주는 OpenCV Python의 MSER 예제입니다. 최초작성 2020. 12. 23 import cv2 import os import numpy as np path = os.path.dirname(os.path.realpath(__file__)) + "/f.jpg" img = c..
linux에서는 realpath 함수, windows 에서는 GetModuleFileName 함수를 사용하여 실행파일의 절대 경로를 얻습니다. 2020. 12. 17 최초작성 2020. 01. 22 윈도우 예제코드 버그 수정. 한글 이름 디렉토리인 경우..
C++에서 현재 날짜, 시간을 출력하는 예제입니다. 2020. 12. 11 최초작성 최근 Visual Studio 2019를 업데이트한 후, 콘솔 프로젝트 만들시 sprintf_s 대신에 sprintf 사용해도 에러나지 않도록 하는 옵션 체크해..
터미널의 특정 위치에 문자열을 출력하는 방법을 다루고 있습니다. 2020. 12. 10 최초작성 #include #include #include void printToCoordinates(int y, int x, const char* format, ...) { va_list args; va_star..
Mat 객체에 있는 이미지 데이터를 char 배열로 옮겼다가 다시 Mat 객체로 가져오는 예제입니다. 2020. 12. 10 최초작성 #include using namespace cv; int main() { // 이미지에서 버퍼 꺼내기 Mat image = imread..
Visual Studio Code에서 손쉽게 OpenCV 코드를 컴파일하고 테스트하는 방법을 다룹니다. 2020. 12. 6 최초작성 2021. 4. 21 기본 셸 관련 에러 해결 2021. 7. 17 VIsual Studio Code 업데이트 후, CMAKE 사용시 바..
OpenCV에서 제공하는 샘플 중 하나인 colorization을 실행시켜 보았습니다. colorization는 흑백 사진을 컬러 사진으로 변환하는 방법입니다.
Windows10에서 Python 3.7에 OpenCV 4.4.0를 설치후 다음과 같은 에러가 날 경우 해결방법입니다. ** On entry to DGEBAL parameter number 3 had an illegal value ** On entry to DGEHRD parameter number 2..
디렉토리 내에 있는 이미지 파일들을 하나씩 OpenCV의 imread 함수로 읽어서 화면에 보여주는 예제 코드입니다. 2020. 10. 24 최초작성 소스 코드 위치에 있는 dataset 폴더에 있는 이미지 파일의 경로를 하나씩..
FFmpeg를 사용하여 하나의 동영상 파일을 다중 RTSP 스트리밍하는 방법을 다룹니다. FFmpeg를 사용하여 하나의 비디오 파일를 입력으로 8개의 RTSP URL을 생성하여 RTSP 스트리밍하는 테스트를 해본 결과입니다. 2..
Windows 10과 Ubuntu 20.04에 CUDA Toolkit 10.1과 cuDNN 7.6.5를 설치한 후, Tensorflow GPU와 OpenCV를 같이 사용하는 방법에 대한 글이 완료되었습니다. 다음 두 개의 글을 참고하면 Windows10에 CUDA 설치 후..
Ubuntu 20.04에 CUDA를 사용하도록 OpenCV 4.4.0 설치하는 방법을 다룹니다. 0. CUDA Toolkit, cuDNN 설치 1. 설치된 OpenCV 제거 2. 기존 설치된 패키지 업그레이드 3. OpenCV 컴파일 전 필요한 패..
C++ 클래스에서 static 멤버변수를 초기화하는 방법을 다룹니다. 아직 C++에 익숙하지 못해서 제 맘대로 바꿔보면서 감을 익히는 중입니다. 2020. 9. 1. 최초작성 클래스에 static 변수를 추가하여 클래스를 이용..
OpenCV 4.4.0과 opencv_contrib(extra modules)를 컴파일하여 Ubuntu 20.04에 설치하는 방법을 다룹니다. 1. 설치된 OpenCV 제거 2. 기존 설치된 패키지 업그레이드 3. OpenCV 컴파일 전 필요한 패키지 설치 4. Op..
유튜브 영상의 댓글로 코드 실행시 다음과 같은 에러가 난다고 알려주신 분이 있어서 확인해보았습니다. The convex hull indices are not monotonous, which can be in the case when the input contour contains..
OpenCV에 포함되어 있는 SIFT 알고리즘을 사용하여 사진 속에서 원하는 물체를 찾는 과정을 진행해보았습니다. 특허가 만료되어 SIFT가 OpenCV 4.4.0부터는 Extra 모듈(contrib)에서 메인 모듈로 옮겨졌습니다. 별..
윈도우 10에 설치된 크롬을 포함한 여러 개의 웹브라우저에서 구글 로그인이 안되는 현상을 물어봐서 원격으로 살펴보다가. 관리자 권한으로 명령 프롬프트를 실행한 후 다음 명령을 실행하고 sfc /scannow 설정에..
Windows와 Ubuntu 환경에 설치된 Visual Studio Code에서 Makefile을 사용하여 C/C++ 코드를 컴파일하고 실행시키는 방법에 대해 설명합니다. Visual Studio Code에서 둘 이상의 소스 코드 파일로 구성된 프로젝트..
Ubuntu 20.04에 CUDA Toolkit와 cuDNN, Tensorflow를 설치하는 방법을 다룹니다. 텐서플로우 최신 버전( 현재 2.5.0 )에서 CUDA 11을 사용하고 있어 수정했습니다. 2020. 7. 19 최초 작성 2020. 8. 31 2021. 5...
FFmpeg를 사용하여 웹캠 영상과 동영상 파일을 RTSP 스트리밍하고 RTSP URL을 입력으로 vlc에서 영상을 재생시켜봅니다. Ubuntu 20.04에서 테스트를 진행하였습니다. 2020. 7. 12 최초작성 웹캠 정보를 확인하기..
Ubuntu 20.04에 GStreamer를 설치하고 웹캠에서 영상을 가져와 화면에 출력해봅니다. 보다 자세한 내용은 GStreamer 홈페이지에 있는 튜토리얼 문서를 참고하세요. https://gstreamer.freedesktop.org/documentati..
이번 영상에서는 OpenCV에서 GPU 가속을 사용하기 위해 OpenCV를 빌드하는 방법을 다룹니다. 사용중인 NVIDIA 그래픽카드에 맞는 CUDA Toolkit와 cuDNN을 설치하고 cmake를 사용하여 OpenCV 빌드 옵션을 설정한..
우분투를 포함하여 리눅스에서 특정 프로세스의 메모리 사용량을 측정하는 방법입니다. 2020. 7. 5 최초작성 2020. 10. 24 최종작성 명령어 ps MAN 페이지의 STANDARD FORMAT SPECIFIERS 항목을 보면 https://ma..
Windows 10에 CUDA Toolkit와 cuDNN, Tensorflow를 설치하는 방법을 다룹니다. 2020. 6. 21 최초 작성. 2020. 8. 8 CUDA Toolkit 버전 확인 방법 수정 2021. 1. 11 Windows 10에 CUDA Toolkit 11.0 cuDNN 8 Tensor..
Visual Studio Code에서 Github에 코드를 업로드하는 방법을 다룹니다. 2020. 5. 26 최초작성 2021. 8. 23 마지막 업데이트 - GitHub의 메인 브랜치 이름이 master에서 main으로 변경됨. 2021. 9. 17 GitHub에서..
VisualGDB와 Visual Studio를 사용하여 Raspberry Pi를 위해 OpenCV 코드를 크로스 컴파일하는 과정을 다룹니다. 1. 우선 다음 포스트를 먼저 진행하세요. Raspberry Pi를 위해 크로스 컴파일러(cross compiler)..
VisualGDB와 Visual Studio를 사용하여 Raspberry Pi를 위한 크로스 컴파일 개발 환경을 만들어 봅니다. 테스트 환경은 다음과 같습니다. Windows 10 Visual Studio 2019 Community 16.6.0 Raspberry Pi 3 1. Visu..
안녕하세요. 웹나우테스입니다. "알짜배기 예제로 배우는 OpenCV" 책 출간 이벤트 ( ~ 2020. 5. 10 ) https://webnautes.tistory.com/1416 일주일 동안 진행했던 이벤트를 마감하고 책을 받으실 분들을 추첨했습니..
다음 깃허브에 있는 욜로 YOLO V4를 실행하는 방법을 소개합니다. hunglc007 / tensorflow-yolov4-tflite ( https://github.com/hunglc007/tensorflow-yolov4-tflite ) 관련 포스트 Ubuntu에서 darknet을 사용하..
안녕하세요. 웹나우테스입니다. 그동안 블로그와 유튜브에 연재한 OpenCV 내용을 바탕으로 "알짜배기 예제로 배우는 OpenCV" 책을 출간했습니다. 영상처리 이론보다는 OpenCV에 빨리 익숙해지는데 초점이 맞추어져..
OpenCV Python을 사용하여 stitching을 구현해보았습니다. 스티칭(stitching)은 같은 장소 또는 같은 객체를 촬영한 여러 장의 사진에서 공통적인 부분을 찾아 이미지를 하나로 연결하는 알고리즘입니다. 결과적으..
Windows에서 pip를 사용하지 않고 바이너리로 배포되는 OpenCV 패키지를 사용하여 Python에서 OpenCV를 사용하는 방법을 다룹니다. 공식 배포되는 OpenCV 버전에 비해 pip 명령으로 설치가능한 버전은 늦게 업데이..
Ubuntu Linux 18.04에 미리 빌드되어 나오는 qt 설치 파일을 다운로드 받아 설치 후, 간단한 예제 코드를 작성하여 터미널에서 컴파일 하는 과정을 다루었습니다. 관련 포스트 [개발 환경/Qt] - Ubuntu 20.04에 QT..
노트북에서 무선랜을 사용하다보면 인터넷이 간혈적으로 끊기거나 다운로드 속도가 급격히 떨어지는 현상이 있어서 해결방법을 찾아보았습니다. 아래 링크에 있는 방법을 적용해보았습니다. http://airpage.org/xe..
스타트업 회사의 이름을 랜덤으로 생성하여 제안해주는 첫번째 Flutter 앱을 작성해봅니다. 먼저 랜덤으로 선택한 두 개의 단어를 결합하여 만든 스타트업 회사 이름을 보여주는 앱을 작성하고 이후 생성된 스타트..
안녕하세요. 웹나우테스입니다. 이번 영상에서는 dlib를 사용하여 검출한 얼굴의 랜드마크를 분리하여 보여주는 코드를 설명합니다. # 패키지 설치 # pip install dlib opencv-python # # 학습 모델 다운로드 # ht..
윈도우 10에서 Flutter 프로그래밍을 위한 개발환경을 만들고 안드로이드 폰에 앱을 설치해서 실행시켜 보았습니다. 참고 https://flutter-ko.dev/docs/get-started/install/windows 안녕하세요. 웹나우테스입니다..
이번 영상에서는 윈도우즈 10에서 화면을 캡처한 결과를 입력으로 사용하여 OpenCV Python에서 탬플릿 매칭을 해보았습니다. # pip install pyautogui # pip install opencv-python import cv2 as cv import numpy..
이번 영상에서는 문자 인식을 해볼 수 있는 테서랙트 tesseract를 윈도우에서 실행시키는 방법을 소개합니다. 관련 포스트 파이썬에서 pytesseract를 사용하여 문자 인식 ( OCR ) 하기 https://webnautes.tistory...
이번 영상에서는 실시간으로 물체 인식을 해볼 수 있는 욜로 yolo를 실행시키는 방법을 소개합니다.
이번 영상에서는 Keras와 OpenCV를 사용하여 직접 쓴 손글씨를 인식하는 방법을 소개합니다. 작성 2020. 3. 30
Ubuntu 20.04에 MediaPipe를 설치하여 간단한 예제를 실행시켜 보는 과정을 다루고 있습니다. Ubuntu 18.04도 같은 방식으로 진행하면 됩니다. MediaPipe가 무엇인지 궁금하시면 다음 두 링크를 방문해보세요.. ht..
이번 영상에서는 OpenCV를 사용하여 파란공의 위치를 트래킹하여 영상에 그림을 그려보는 코드를 소개합니다. import cv2 as cv def draw_ball_location(img_color, locations): for i in range(len(locations)-1)..
MFC에서 SQLite3에 한글 문자열을 저장하고 다시 불러오는 간단한 예제를 만들어보았습니다. 이쪽 분야를 전문적으로 작성하지 않기 때문에 좀 이상하게 작성된게 있을 수도 있습니다^^; MFC에서 사용할 SQLIte를..
MFC에서 VFW(Video For Window)를 사용하여 웹캠의 영상을 가져온 후, 그레이스케일 영상으로 변환하여 PIcture Control에 원본과 그레이스케일 영상을 보여주도록 만들어 보았습니다. ps. 프로젝트가 32비트인 경..
Python에서 예외처리를 위해 try except를 사용하는 간단한 예제입니다. 2021. 12. 4 - 최초작성 참고 https://stackoverflow.com/a/47103744/15850881 4개의 원소를 값는 넘파이 배열을 생성합니다. 배열의 인덱..
C++ map에 대한 간단한 사용방법입니다. 2021. 12. 4 - 최초작성 map은 고유의 key 값을 사용하여 값을 저장하는 컨테이너로 키값에 따라 정렬이됩니다. 다음처럼 키와 값의 타입을 지정하여 map을 선언합니다. 첫..
4분할로 웹캠 또는 동영상을 보여주는 OpenCV C++ 예제 코드입니다. 2021. 12. 4 - 최초작성 초기화면 또는 0을 누른 경우에는 4개의 영상을 4분할로 보여주며 1 ~ 4 사이 숫자 누르면 영상 1개씩 전체화면으로 보..
Macbook M1에서 Visual Studio Code와 연동하여 OpenCV C++ / Python 개발 환경을 만드는 과정을 설명합니다. 2021. 12. 4 최초작성 1. 다음 포스트에 나온대로 Xcode를 설치합니다. MacBook에 Xcode 설치하기 htt..
Macbook M1에 Miniconda 설치하고 Visual Studio Code와 연동하는 방법을 다룹니다. 2021. 12. 1 최초작성 참고 https://docs.conda.io/projects/conda/en/latest/user-guide/install/macos.html Macbook M1용 Ten..
Tensorflow 학습 코드를 두개 동시에 실행하는 경우 model.fit에서 다음과 같은 에러가 나서 나중에 실행한 코드는 중단됩니다. tensorflow.python.framework.errors_impl.InternalError: Attempting to perform B..
Numpy 배열에 열을 추가하는 Python 예제코드입니다. 2021. 12. 1 - 최초작성 import numpy as np array = np.array([[1,2], [3,4], [5,6]]) print(array) # 3 x 2 배열입니다. # [[1 2] # [3 4] # [5 6]] print()..
Numpy 배열에서 0이 아닌 최소값을 찾는 예제입니다. 2021. 12. 1 최초작성 # -*- coding: utf-8 -*- import numpy as np import numpy.ma as ma a = np.array([-1, 0, 1, 2, 3, 4, 5]) print(a) min_value = np.m..
1차원 곡선의 최소값과 최대값 위치를 찾아주는 예제입니다. scipy에서 제공하는 argrelmin, argrelmax를 사용하여 구현했는데 정확한 위치를 잡아주지는 않습니다. 실행 속도도 빠른 편이 아니네요. 2021. 12. 1..
두 곡선의 교차점에 대응하는 x, y좌표를 구할 수 있는 Python 예제 코드입니다. 2021. 11. 30 - 최초작성 실행 결과입니다. 두 곡선의 교점을 초록색 점으로 표시해주고 있습니다. 터미널에서 교차점의 x,y 좌표..
AWS의 Lambda + API Gateway + DynamoDB를 사용하여 구현한 Rest API를 안드로이드 앱과 연동해본 예제입니다. 익숙하지 않은 분야라 이상한 점이 있을 수 있습니다. 2021. 11. 29 - 최초작성 본 포스트는 다음처..
for 문에 Matplotlib 그래프를 저장하는 예제입니다. 2021. 11. 29 - 최초작성 x좌표를 바꾸어가면서 그린 그래프 20개를 저장하는 예제입니니다. 다음과 같은 경고 메시지가 발생했었는데 plt.close(fig)를 추가..
Python에서 List에 원소를 추가하는데 걸리는 시간과 Numpy에서 넘파이 배열에 원소를 추가하는데 걸리는 시간을 비교해봤습니다. 예상과 달리 넘파이 배열에 원소를 추가하는 시간이 더 오래 걸립니다. 2021. 11...
Matplotlib에서 수직선을 그리는 예제입니다. 2021. 11. 28 최초작성 axvline 함수에 x좌표를 지정해주면 해당 위치에 수직선을 그릴 수 있습니다. import matplotlib.pylab as plt import numpy as np x = np.lin..
generator를 사용하여 넘파이 배열을 일정한 크기씩 나누어 가져오는 것을 작성한 테스트 코드입니다. 더 간단한 방법이 있을 거 같았는데 마땅히 떠오르지 않습니다. 2021. 11. 28 최초작성 import numpy as np a..
Ubuntu Server 20.04 arm64에 Miniconda 설치하고 Visual Studio Code와 연동하는 방법을 다룹니다. 2021. 11. 27 최초작성 참고 https://varhowto.com/install-miniconda-ubuntu-20-04/ 1. 설치를 할 때 사용할..
Ubuntu Server 20.04 Arm64에 Visual Studio Code 설치하는 과정을 다룹니다. 2021. 11. 27 최초작성 아래 링크에서 deb 항목에 있는 ARM64 링크를 클릭합니다. https://code.visualstudio.com/Download Save Fil..
Macbook M1에 설치한 Ubuntu Server 20.04 Arm64에 한글 입력기를 설치한 과정을 다루고 있습니다. 2021. 11. 27 최초작성 왼쪽 아래에 보이는 다음 아이콘을 클릭합니다. settings를 입력하여 보이는 Settings를..
UTM을 사용하여 MacBook Air M1에 Ubuntu 20.04를 설치한 후, 단축키를 사용하기 위해 설정한 내용을 다루고 있습니다. 2021. 11. 26 최초작성 2021. 11. 27 최종수정 MacBook Air에 Ubuntu를 설치한 과정은 다음..
Macbook Air M1에 Ubuntu ARM64 설치한 과정을 기록했습니다. 2022. 1. 20 0. 아래 링크에서 Ubuntu Server for ARM를 다운로드합니다. https://ubuntu.com/download/server/arm 1. 아래 링크에서 Assets를 클릭..
모델에 데이터를 공급하는 방식 중 하나인 tf.data.Dataset.from_generator를 살펴봅니다. 데이터가 너무 커서 메모리에 모두 로드할 수 없는 경우 데이터를 한번에 모두 읽어오는 대신에 디스크에서 데이터를 배..
텐서플로우 콜백함수 ModelCheckpoint, ReduceLROnPlateau, EarlyStopping를 다루고 있습니다. 2021. 11. 17 최초작성 ModelCheckpoint 모델 또는 가중치를 저장할 때 사용되는 콜백함수입니다. www.tensorflow.or..
Python OpenCV에서 이미지 크기(width, height)를 가져오는 방법입니다. 2021. 11. 14 컬러 이미지의 경우에는 shape 함수를 통해 height, width, channels를 얻을 수 있습니다. import numpy as np import cv2 im..
Python에서 JSON 포맷 파일을 로드하는 방법입니다. 2021. 11. 14 최초작성 test.json 이름으로 파일을 작성합니다. {"name":"Lee","messages":["msg 1","msg 2","msg 3"],"country":"korea"} 다음 파이썬 코드를..
MATLAB의 mat 파일을 Python에서 불러오는 예제 코드입니다. 2021. 11. 14 최초작성 import scipy.io as sio arr = sio.loadmat('sample1.mat') print('arr') print(arr) print('\n\n') a = arr['a'] b = arr['b']..
VirtualBox 6.1.28에서 발생한 문제입니다. VirtualBox와 WSL을 동시에 사용할 수 없습니다. 최초작성 2021. 11. 13 명령 프롬프트를 관리자 모드로 실행하여 다음 명령을 각각 실행해준 후, 재부팅을 해야 합니다..
tfds build시 발생한 AssertionError: Unrecognized instruction format (또는 Unrecognized split format ) 원인과 해결방법입니다. 2021. 11. 12 최초작성 File "/home/webnautes/miniconda3/envs/tensorflo..
Python에서 실수 출력 포맷을 지정하는 예제 코드입니다. 2021. 11. 10 - 최초작성 소수점 두번째 자리까지 출력하기 pi = 3.14159265359 print("{:.2f}".format(pi)) 소수점 두번째 자리까지 출력되었습니다. 3.1..
알게 되는 순서대로 기록하는 우분투 기본 사용방법 기록 페이지입니다. 2021. 11. 10 최초작성 1. 지정한 디렉토리 크기 확인 $ du -sh /home/webnautes 834M /home/webnautes 2. zip를 사용하여 하위..
MacBook에 Xcode를 설치한 과정을 다루고 있습니다. 2021. 11. 9 - 최초작성 2021. 12. 19 - 최종작성 이젠 앱 스토어에서 다운로드 받아야 합니다. https://apps.apple.com/us/app/xcode/id497799835?mt=12 Xco..
알게 되는 순서대로 기록하는 맥북 기본 사용방법 기록 페이지입니다. 2021. 11. 07 최초작성 2021. 12. 04 2022. 01. 22 2022. 02. 05 2022. 3. 12 2022. 3. 19 1. 독에 있는 추가되어 있는 앱에 검은점이 있는..
제네릭(Generics)를 다룹니다. A Swift Tour ( https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html ) 문서의 코드를 Swift Playground( https://swiftfiddle.com/ ) 에서 실행시켜 보며 진행해보았습..
MacBook Air M1에 Android Studio를 설치해보았습니다. 2021. 11. 6 - 최초작성 2021. 12. 4 - 최종작성 처음 시도는 윈도우와 똑같은 방식으로 아래 링크에서 다운로드 받아 압축을 풀고 설치를 해보았는데 중간..
에러 처리(Error Handling)를 다룹니다. A Swift Tour ( https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html ) 문서의 코드를 Swift Playground( https://swiftfiddle.com/ ) 에서 실행시켜 보며 진행..
맥북에 크롬 웹브라우저를 설치하여 구글 독스에서 문서를 작성하려고 했는데 오타가 너무 심해서 문서 작성이 힘들 정도 였습니다. 몇가지 키워드를 사용하여 검색하던 중 다음 링크에 달린 답변을 보고 해결되었..
이벤트 추가와 날짜 선택이 가능한 안드로이드 달력 예제입니다. 2021. 11. 5 최초작성 아래 깃허브 저장소에 있는 CompactCalendarView 라이브러리를 사용했습니다. https://github.com/SundeepK/CompactCalendar..
Matplotlib에서 x축 눈금 레이블을 대각선으로 출력하는 방법을 다룹니다. 2021. 10. 28 최초작성 import pandas as pd from tensorflow import keras from zipfile import ZipFile from matplotlib import pyplot..
프로토콜과 익스텐션을 다룹니다. A Swift Tour ( https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html ) 문서의 코드를 Swift Playground( https://swiftfiddle.com/ ) 에서 실행시켜 보며 진행해보..
윈도우의 명령 프롬프트에서 하위 디렉토리 포함하여 디렉토리 목록을 출력하는 방법입니다. 2021. 10. 27 - 최초작성 현재 위치의 하위 디렉토리 목록을 출력해주는 명령어입니다. dir /A:D /B /S 실행시켜보..
AWS Lambda 함수와 API Gateway로 만든 REST API 배포하는 방법을 다룹니다. 익숙하지 않은 분야라 이상한 점이 있을 수 있습니다. 2021. 10. 24 - 최초 작성 우선 다음 포스트를 진행해야 합니다. AWS Lambda 함..
열거형(Enumerations)과 구조체(Structures)를 다룹니다. A Swift Tour ( https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html ) 문서의 코드를 Swift Playground(https://swiftfiddle.com/ ) 에서 실..
객체(Objects)와 클래스(Classes)를 다룹니다. A Swift Tour ( https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html ) 문서의 코드를 Swift Playground(https://swiftfiddle.com/ )에서 실행시켜 보며..
Lambda를 사용하여 DynamoDB를 사용해보았습니다. 2021. 10. 11 - 최초작성 AWS 관리 콘솔 사이트(https://aws.amazon.com/ko/console/ )에 접속하여 로그인 후, 오른쪽 상단에 보이는 리전을 서울로 변경합니다...
Linux에서 실행파일을 위해 필요한 공유라이브러리의 이름과 위치를 찾는 방법입니다. 크로스 컴파일 후, 실행파일과 관련 공유파일을 임베디드 보드로 옮길때 필요해서 찾았던 방법입니다. ldd 명령이 없는 임베..
C++의 vector에 저장된 값으로 부터 표준편차와 평균을 구하는 예제 코드입니다. 2021. 10. 10 - 최초작성 #include #include #include #include #include using namespace std; int main() { vector v = {1, 2, 3..
VirtualBox나 VMware에서 Ubuntu 설치시 화면이 잘려서 다음으로 넘어가는 버튼이 안보이는 경우가 있습니다. 2021. 10. 10 - 최초작성 Alt + F7을 누른 후, 마우스 또는 키보드 화살표키로 창을 이동시키면 해결..
웹브라우저에 Hello, World!를 출력하는 Flask 예제코드입니다. Flask의 Quickstart 문서를 보며 진행한 과정을 작성한 글입니다. https://flask.palletsprojects.com/en/2.0.x/quickstart/ 부족한 부분이나 이상..
원래 함수와 클로저를 다루는 내용이었지만 여기에선 함수만 다룹니다. 클로저 부분은 “A Swift Tour” 문서 내용으로 파악이 힘들어 추후 가이드 문서 볼때 작성하는 것으로 합니다. A Swift Tour ( https://doc..
if와 switch를 사용하여 조건문을 만들고 for-in, while 및 repeat-while을 사용하여 반복문을 만듭니다. A Swift Tour ( https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html ) 문서의 코드를 Swift P..
let을 사용하여 상수를 만들고 var를 사용하여 변수를 만듭니다. A Swift Tour ( https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html ) 문서의 코드를 Swift Playground(https://swiftfiddle.com/ )..
Hello, world를 화면에 출력해봅니다. A Swift Tour ( https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html ) 문서의 코드를 Swift Playground(https://swiftfiddle.com/ ) 에서 실행시켜 보며 진행..
NumPy 배열이 일정 크기 이상이 되면 print를 사용하여 출력시 다음처럼 생략이 됩니다. [[ 0] [ 1] [ 2] ... [9997] [9998] [9999]] 사용한 코드입니다. import numpy as np a = np.arange(10000) b..
CSV 파일을 읽어 순서 유지한채 무작위 샘플링하여 2개의 CSV 파일로 저장하는 예제입니다. Pandas를 사용하여 구현하였습니다. 테스트에 사용한 CSV 파일입니다. 주의할점은 csv 파일에 필드를 설명하는 헤더가..
NumPy reshape에 -1을 사용하는 이유는 shape에서 -1로 지정한 차원은 알아서 계산되게 하기 위해서입니다. 2021. 10. 4. 최초작성 >>> import numpy as np 크기 6인 1차원 배열을 생성합니다. >>> a = np.array([..
감정 분석(Sentiment Analysis)을 위해 AWS Comprehend API를 사용하는 REST API를 구현해봅니다. 익숙하지 않은 분야라 이상한 점이 있을 수 있습니다. 2021. 10. 2 - 최초작성 우선 Lambda 함수를 작성합니다. A..
두 개의 2차원 넘파이 배열에 0축(axis=0)을 추가하여 하나로 합치는 예제 코드입니다. 2021. 9. 30 - 최초 작성 예를 들어 2차원 배열의 shape가 (10,3)인 경우 2개를 합치게 되면 (2,..
Lambda 함수와 API Gateway를 사용하여 REST API를 구현해봅니다. 익숙하지 않은 분야라 이상한 점이 있을 수 있습니다. 2021. 9. 30 - 최초작성 Lambda는 코드를 작성한 다음 이벤트에 연결할 수 있는 서버리스..
Python으로 작성된 AWS Lambda 함수를 사용해보았습니다. 2021. 9. 28 - 최초작성 AWS 관리 콘솔 사이트(https://aws.amazon.com/ko/console/ )에 접속하여 로그인 후, 오른쪽 상단에 보이는 리전을 서울로 변경..
OpenCV에서 로드한 이미지 파일을 QT에서 보여주고 그레이스케일로 변환하는 간단한 영상처리를 구현한 예제입니다. 2021. 9. 26 - 최초작성 처음 실행하면 다음처럼 버튼만 보입니다. Open 버튼을 클릭하면 파일..
검출결과에서 영어 대소문자, 숫자외에는 모두 제거해야 해서 어떻게 해야 했는데 찾아보니 생각보다 간단해서 굳이 찾아볼 필요가 없었네요. 2021. 9. 26 - 최초작성 #include using namespace std; string split..
Visual Studio 2019 버전 16.11.3에서 MFC 프로젝트를 다이얼로그로 생성시 다음과 같은 에러가 발생했습니다. COM 구성 요소 호출에서 HRESULT E_FAIL 오류가 반환되었습니다. 구글에서 찾아본 아래 3가지를 진..
사각형을 찾도록 MSER(Maximally Stable Extremal Regions)을 이미지에 적용한 다음 IoU(Intersection over Unit)를 사용하여 같은 영역에 중복되어 그려진 사각형을 제거해보았습니다. 테스트한 이미지에서만 사..
vector에 저장된 원소중에 특정값을 지우는 예제코드입니다. 2021. 9. 22 - 최초작성 #include // for std::remove #include #include using namespace std; int main() { vector v = {1, 2, 3, 4, 5}; for(int i=..
vector 객체 중에 똑같은 값이 있는 것을 제거할 방법을 고민하다가 중복 체크가 될까 하면서 set 컨테이너에 vector 객체를 넣어봤습니다. 예상되로 잘 되네요. 2021. 9. 22 - 최초 작성 #include #include #incl..
C++에서 중복된 정수값을 체크할 방법을 찾다가 set 컨테이너를 사용해봤습니다. set의 insert 함수를 사용할 경우 리턴값을 체크하여 중복 여부를 확인할 수 있네요. 2021. 9. 22 - 최초작성 #include #include..
apt-get update를 했더니 평소와 다른 메시지가 보였습니다. pi@raspberrypi:~ $ sudo apt-get update Hit:1 http://archive.raspberrypi.org/debian buster InRelease Get:2 http://raspbian.raspberrypi..
프로그래밍 언어 / 프레임워크 / 도구 별로 .gitignore 템플릿이 모아져있는 저장소입니다. 처음 .gitignore 파일 생성시 디폴트 내용으로 사용하면 좋을 듯합니다. https://github.com/github/gitignore GitHub -..
정규화(Normalization), 표준화(standardization), 이상치(outlier) 제거를 구현해본 코드입니다. 2021. 9. 17 - 최초작성 2022. 4. 15 졍규화는 값을 0 ~ 1 사이의 범위로 바꾸는 것이고, 표준화는 평균이 0, 표..
하위 경로에 있는 특정 확장자 파일의 목록을 리스트로 받아오는 Python 예제입니다. 2021. 9. 16 - 최초 작성 2022. 1. 2 - walk 추가, 실행 시간 측정 import os, glob import time start = time.time() # 하위..
Matplotlib에서 figure 제목 및 subplot 별 제목을 추가하는 예제입니다 2021. 9. 16 - 최초작성 import numpy as np import matplotlib.pyplot as plt x = np.linspace(-3,3,100) # x좌표는 -3에서 3 사이에서 10..
Numpy 배열의 차원을 추가하는 expand_dims 사용법을 파악해보려고 테스트해본 내용입니다. 파이썬 인터프리터에서 진행했기 때문에 차례대로 코드를 실행해 봐야 합니다. 2021. 9. 15 - 최초작성 테스트에 사용할..
Tensorflow 모듈을 사용할 경우 사용자가 출력하지 않은 추가 정보들이 많이 출력됩니다. 특히 CUDA를 Tensorflow 모듈에서 사용하는 경우 더 많이 출력됩니다. 2021. 9. 14 최초작성 다음 링크에서 소개하는 방법..
Tensorflow Dataset의 window 메소드 사용법을 파악해보려고 테스트해 본 내용입니다. 2021. 9. 14 - 최초작성 range 메소드를 사용하여 0 ~ 9 까지 값을 갖는 Dataset을 생성합니다. as_numpy_iterator 메소드는..
numpy 배열의 데이터를 원본 csv 파일에서 찾을 목적으로 만들었던 코드였는데 간단한 데이터로 예제코드를 만들어봤습니다. 2021. 9. 11 최초작성 import numpy as np a = np.linspace(0.01, 1.00, 9).reshape(3,..
구글에서 검색해봐도 해결방법이 보이지 않았던 에러입니다. 원인이 여러가지 일 수 있겠지만 Keras의 LSTM 레이어에 activation='relu'를 추가해놓았다면 제거해주면 해결됩니다. WARNING:tensorflow:Layer ls..
Ubuntu 20.04에 Tesseract-ocr을 설치한 후, C++ 코드로 문자 인식(OCR)을 간단히 해보았습니다. 2021. 9. 5 - 최초작성 우선 Ubuntu 20.04에 다음 두 패키지를 설치합니다. $ sudo apt install tesseract-ocr li..
WSL2에 설치된 우분투에서 GUI 프로그램을 실행하기 위해 /etc/resolv.conf의 nameserver IP를 확인하여 환경변수 DISPLAY에 넣는 과정을 스크립트로 작성한 과정을 다룹니다. 2021. 9. 4 - 최초 작성 윈도우 10에..
Windows 10 환경에서 Visual Studio Code와 Miniconda를 사용한 Flask 개발 환경 만들기를 다루고 있습니다. 2021. 9. 4 최초 작성 pip install flask로 끝나는 설치가 Min..
QGridLayout QT5 예제입니다. 아래 사이트의 QT 강좌를 공부하며 정리 차원에서 작성하는 포스트입니다. https://zetcode.com/gui/qt5 2021. 08. 31 - 최초작성 터미널에서 빌드 및 실행을 진행합니다. 편집기는..
오토인코더를 사용한 학습에서 표준화를 전처리 과정으로 사용하고 있어서 간단히 내용을 찾아서 정리했지만 아직은 좀 더 자료를 찾아봐야 할거 같습니다. 2021. 8. 26 최초작성 비교하려는 데이터 간에 값의 범..
QGridLayout QT5 예제입니다. 아래 사이트의 QT 강좌를 공부하며 정리 차원에서 작성하는 포스트입니다. https://zetcode.com/gui/qt5 2021. 08. 26 - 최초작성 터미널에서 빌드 및 실행을 진행합니다. 편집기는..
QFormLayout QT5 예제입니다. 아래 사이트의 QT 강좌를 공부하며 정리 차원에서 작성하는 포스트입니다. https://zetcode.com/gui/qt5 2021. 08. 25 - 최초작성 터미널에서 빌드 및 실행을 진행합니다. 편집기는..
OpenCV에서 캡처한 webcam 영상을 QT에서 보여주는 예제 코드입니다. 2021. 8. 24 - 최초작성 실행 화면입니다. 처음 실행시 Open 버튼 클릭 후 Close 버튼 클릭 후 소스 코드입니다. // 원본 - https://gith..
QT와 OpenCV를 같이 사용하기 위해 pro 파일에 OpenCV 관련 컴파일 옵션들을 다음처럼 추가했습니다. QT += widgets TEMPLATE = app TARGET = qt_opencv_webcam INCLUDEPATH += . INCLUDEPATH += $(pk..
다음 포스트처럼 WSL 2와 Xming X Server for Windows를 설치하여 사용하던 중 갑자기 GUI 프로그램을 실행했는데 무응답인 경우가 발생했습니다. https://webnautes.tistory.com/1170 WSL 2 ( Windows Subsystem..
List QT5 예제입니다. 아래 사이트의 QT 강좌를 공부하며 정리 차원에서 작성하는 포스트입니다. https://zetcode.com/gui/qt5 2021. 08. 24 - 최초작성 터미널에서 빌드 및 실행을 진행합니다. 편집기는 익숙한..
Git와 GitHub를 사용해보며 알게된 점들을 정리하기 위해 만든 포스트입니다. 포스트 작성 후, 재검토해보며 터미널의 결과를 수정해서 스크린샷과 터미널의 실행 결과(해쉬코드 같은 것)에 차이가 있을 수 있습..
Button QT5 예제입니다. 아래 사이트의 QT 강좌를 공부하며 정리 차원에서 작성하는 포스트입니다. https://zetcode.com/gui/qt5 2021. 08. 21 - 최초작성 터미널에서 빌드 및 실행을 진행합니다. 편집기는 익숙한..
QVBoxLayout QHBoxLayout QT5 예제입니다. 아래 사이트의 QT 강좌를 공부하며 정리 차원에서 작성하는 포스트입니다. https://zetcode.com/gui/qt5 2021. 08. 19 - 최초작성 터미널에서 빌드 및 실행을 진행합니다..
툴바 QT5 예제입니다. 아래 사이트의 QT 강좌를 공부하며 정리 차원에서 작성하는 포스트입니다. https://zetcode.com/gui/qt5 2021. 08. 18 - 최초작성 터미널에서 빌드 및 실행을 진행합니다. 편집기는 익숙한..
Ubuntu 20.04에 QT5 를 설치하는 방법을 다룹니다. 2021. 8. 17 최초작성 우선 g++ 컴파일러가 필요하며 추가로 make를 설치해야 합니다. $ sudo apt-get install build-essential make QT WIKI에서 확인해보니..
Nvidia Jetson에 Jetpack 설치시 SDK Manager를 사용하는데 PC에 설치된 버전이 Ubuntu 18.04가 아니면 설치 진행이 안됩니다. 예전엔 가능했던거 같은데 바뀐 점이 있나봅니다. 찾아보니 우분투 설정 파일에서 버..
메뉴 QT5 예제입니다. 아래 사이트의 QT 강좌를 공부하며 정리 차원에서 작성하는 포스트입니다. https://zetcode.com/gui/qt5 2021. 08. 14 - 최초작성 터미널에서 빌드 및 실행을 진행합니다. 편집기는 익숙한..
라벨 QT5 예제입니다. 아래 사이트의 QT 강좌를 공부하며 정리 차원에서 작성하는 포스트입니다. https://zetcode.com/gui/qt5 2021. 08. 12 - 최초작성 터미널에서 빌드 및 실행을 진행합니다. 편집기는 익숙한..
푸시버튼 QT5 예제입니다. 아래 사이트의 QT 강좌를 공부하며 정리 차원에서 작성하는 포스트입니다. https://zetcode.com/gui/qt5 2021. 08. 10 - 최초작성 터미널에서 빌드 및 실행을 진행합니다. 편집기는 익숙..
윈도우를 보여주는 간단한 QT5 예제입니다. 아래 사이트의 QT 강좌를 공부하며 정리 차원에서 작성하는 포스트입니다. https://zetcode.com/gui/qt5/introduction/ 2021. 08. 09 - 최초작성 터미널에서 빌드 및 실..
Hello World를 터미널에 출력하는 간단한 QT5 예제입니다. 아래 사이트의 QT 강좌를 공부하며 정리 차원에서 작성하는 포스트입니다. https://www.bogotobogo.com/Qt/Qt5_TutorialHelloWorld.php 2021. 08. 07 -..
텐서플로우에서 다음과 같은 간단한 MNIST 예제를 실행시켜보면 매번 학습 결과가 다른 것을 확인할 수 있습니다. 실행할때마다 일정한 학습 결과를 얻는 방법을 다룹니다. 2021. 7. 29 - 최초작성 # https://www...
Mediapipe의 Hello_World 예제 사용방법을 소개합니다. 2021. 7. 24 최초작성 Mediapipe를 Ubuntu에 설치하는 방법을 먼저 진행하세요. MediaPipe를 Ubuntu에 설치하는 방법 https://webnautes.tistory.com/1404..
Ubuntu 20.04에 ftp 서버를 설치하는 과정을 다룹니다. vsftpd를 사용했습니다. 1. vsftpd 패키지를 설치합니다. $ sudo apt-get install vsftpd 2. vsftpd.conf 파일을 열어서 $ sudo nano /etc/vsftpd.conf 다음..
MacBook M1에 PyTorch를 설치하는 과정을 다루고 있습니다. 다음 링크를 참고하여 작성했습니다. https://betterprogramming.pub/how-to-install-pytorch-on-apple-m1-series-512b3ad9bc6 2021. 5. 2. 최초작성 0...
Windows에 설치된 CUDA 버전에 맞추어 PyTorch를 설치하는 방법을 다룹니다. 2022. 5. 1 최초작성 이미 CUDA 및 conda 환경이 설치되어있다면 3번부터 진행하세요. 1. 아직 CUDA를 설치하지 않았다면 아래 문서를..
AUC - ROC Curve에 대해 다루고 있습니다. 2022. 4. 26 최초작성 아래 링크의 원문을 바탕으로 이해한 내용을 추가하여 작성되었습니다. https://towardsdatascience.com/understanding-auc-roc-curve-68b2303cc9c..
Visual Studio Code에 설치된 Pylint에서 OpenCV의 파이썬 모듈인 cv2을 인식하지 못해서 에러가 난 것처럼 표시되는 것을 해결한 과정을 다루고 있습니다. 2022. 4. 24 최초작성 OpenCV 코드는 문제 없이 동작하..
정규 분포(Normal Distribution) 와 표준 정규 분포(Standard Normal Distribution)의 개념 및 이 둘의 차이를 설명합니다. 2022. 4. 17 최초작성 2022. 4. 17 “표준 정규 분포” 항목의 불분명한 문장 수정. 알..
다음 두가지 XGBoost Warning을 해결하는 방법을 다룹니다. 2022. 4. 14 최초작성 WARNING: C:/Users/Administrator/workspace/xgboost-win64_release_1.3.0/src/learner.cc:1061: Starting in XGBoost 1.3.0, the..
Conda 환경에서 pip와 conda를 사용하여 패키지 설치시 어디에 설치되는지 확인해보았습니다. 윈도우 10에 설치된 Miniconda에서 확인한 결과입니다. 2022. 4. 13 Miniconda에 다음 두 개의 가상환경 base와 newen..
표준화 전후로 이상치(Outlier)를 제거하는 Python 예제 코드입니다. 2022. 4. 5 최초작성 이상치는 대부분의 값과 다르게 아주 작거나 아주 큰 값을 의미합니다. 평균 ± 표준편차 × 3 을 벗어나는 것을 이상치..
Windows에서 Visual Studio Code + Jupyter Notebook으로 Python 개발 환경을 만들고 Jupyter Notebook에서 Rust 코드를 실행하는 방법을 다루고 있습니다. Jupyter Notebook은 Python을 위한 것이라서 사용하지..
Windows에 Visual Studio Code + Jupyter Notebook 개발 환경을 만드는 과정을 다룹니다. 2022. 4. 3 - 최초작성 1. 다음 포스트대로 Windwos에 Miniconda를 설치하여 Python 개발환경을 만든 후, Visual Studio C..
Windows 10에 Miniconda를 설치한 Python 개발 환경에 Visual Studio Code와 연동하는 것을 다루고 있습니다. 2022. 4. 3 최초작성 1. 아래 링크에서 Miniconda3 Windows 64-bit를 다운로드하여 설치합니다. https..
Windows에 Rust 개발 환경을 만드는 과정을 다루고 있습니다. 2022. 4. 3 최초작성 1. Microsoft C++ Build Tools를 설치하거나 Microsoft Visual Studio를 설치해야 합니다. 참고한 마이크로소프트 웹페이지에서..
Macbook M1에 Visual Studio Code + Jupyter Notebook으로 Python 개발 환경을 만들고 Jupyter Notebook에서 Rust 코드를 실행하는 방법을 다루고 있습니다. Jupyter Notebook은 Python을 위한 것이라서 사용하지..
Macbook M1에 Visual Studio Code + Jupyter Notebook 개발 환경을 만드는 과정을 다룹니다. 2022. 4. 3 - 최초작성 1. 다음 포스트대로 Macbook M1에 Miniforge를 설치하여 Python 개발환경을 만든 후, Visual St..
Macbook M1에 Visual Studio Code + Rust 개발 환경을 만드는 과정을 다루고 있습니다. 2022. 4. 3 최초작성 1. Command + Space 바를 누른 후, terminal.app을 입력 후, 엔터키를 눌러 터미널을 실행합니다. 2...
webcam에서 가져온 영상을 mp4로 저장하는 OpenCV Python 예제입니다. 2022. 3. 30 최초작성 # 참고 # https://github.com/dgseten/bad-cv-tfm/blob/2ada9b71f85aa5eb75c1f4a039cb14d697ee2f69/tools/video/video-..
Macbook M1에 설치된 Visual Studio Code에서 Github에 코드를 업로드하는 방법을 다룹니다. 2022. 3. 16 최초작성 2022. 3. 19 쉬운 push 방법 추가 0. 우선 homebrew를 설치합니다. % ruby -e "$(curl -fsSL htt..
multiclass classification에서 클래스별로 ROC curve를 그리는 예제 코드입니다. 2022. 3. 14 최초작성 # https://stackoverflow.com/questions/45332410/roc-for-multiclass-classification # https://moons08.g..
Macbook M1에 설치된 tensorflow에서 keras API 호출시 다음 에러가 나는데 원인을 알 수 없네요. failed assertion `Failed to allocate private MTLBuffer for size 0 conda 가상환경을 삭제후 다..
Optuna를 사용하여 XGBoost의 최적 하이퍼 파라미터 구하는 예제코드입니다. 2022. 03. 12 최초작성 # 참고한 코드 https://github.com/optuna/optuna-examples/blob/main/xgboost/xgboost_simple.py import numpy..
다중클래스의 혼동행렬(confusion matrix)을 구하여 클래스별 민감도(sensitivity)와 특이도(specificity)를 구하는 예제코드입니다. 2022. 03. 12 최초작성 from sklearn.metrics import multilabel_confusion_ma..
Pandas의 read_csv 함수의 느린 속도를 개선하는 방법을 다룹니다. 2022. 03. 11 최초작성 csv 파일을 하나 읽어서 작업할 때에는 Pandas의 read_csv 함수가 느리다는 것을 알지 못했는데 대량의 csv 파일을(정확..
스택오버플로우에서 찾은 내용을 기반으로 신경망에서 편향의 역할을 정리해봤습니다. 출처 - https://stackoverflow.com/questions/2480650/what-is-the-role-of-the-bias-in-neural-networks 2022. 3. 9 - 최초..
Macbook m1에서 xgboost 코드 실행시 발생한 segmentation fault를 해결한 방법을 소개하고 있습니다. 전 5번까지 진행해야 segmentation fault 없이 xgboost 코드가 실행되었습니다. 최초작성 2022. 3. 9 출처..
로드한 이미지를 Center Crop하는 OpenCV Python 예제입니다. 2022. 3. 6 최초작성 오른쪽 원본 이미지의 중심을 기준으로 300 x 300 이미지를 Center Crop한 이미지가 왼쪽 이미지입니다. 원본 이미지에 Center..
로드한 이미지를 정사각형 이미지가 되도록 가장자리를 0으로 채워 패딩(padding)하는 OpenCV Python 예제입니다. 최소한 이미지의 최대변 길이 이상을 입력해야 정사각형 이미지로 만들어줍니다. 그 이하인 경우..
Webcam에서 가져온 이미지에 fps 표시하여 화면에 출력하는 OpenCV Python 예제 코드입니다. 2022. 03. 06 최초작성 # 참고 # https://github.com/dgseten/bad-cv-tfm/blob/2ada9b71f85aa5eb75c1f4a039cb14d697ee..
2022. 3. 13 아래 링크에 나온대로 vscode의 환경 설정에서 다음 두 가지 항목을 확인해보니 두번째 항목이 체크되어 있어 체크해제하니 문제가 사라졌습니다. vscode에서 Run Python File in Terminal을 사..
파이썬 리스트에서 특정 값 또는 특정 문자 등의 개수를 세는 데 사용할 수 있는 방법입니다. 2022. 3. 3 최초작성 아래 예제는 리스트에 저장되어 있는 숫자별 개수를 출력하는 예제입니다. from collections imp..
캐글의 딥러닝 튜토리얼을 바탕으로 정리한 문서입니다. 개인적으로 추가한 내용이 있어서 원문 내용에 차이가 있습니다. Intro to Deep Learning https://www.kaggle.com/learn/intro-to-deep-learning 추가로 참..
캐글의 딥러닝 튜토리얼을 바탕으로 정리한 문서입니다. 개인적으로 추가한 내용이 있어서 원문 내용에 차이가 있습니다. 이번에 다루는 내용은 수식에 대한 이해가 되면 수정할 부분이 있을 듯합니다. Intro to D..
캐글의 딥러닝 튜토리얼을 바탕으로 정리한 문서입니다. 개인적으로 추가한 내용이 있어서 원문 내용에 차이가 있습니다. Intro to Deep Learning https://www.kaggle.com/learn/intro-to-deep-learning 2022. 2...
MQTT 개념과 구현 예제를 다룹니다. 이름만 들어봤던 것을 마침 개념을 정확히 알아둘 필요가 생겨서 정리해봤습니다. 아직 예제 코드 및 MQTT 예제는 실행하여 확인해보지는 않았습니다. 다음 링크의 문서를 번역..
XGBoost 관련 개념을 정리한 문서입니다. 논문을 보고 진행했어야 했는데 인터넷 자료를 바탕으로 작성하게 되었네요. 수식은 이해안되는 부분이 아직은 많아서 제외시켰습니다. 추후 논문을 확인해볼 생각입니다...
Keras Tuner를 사용하여 Keras 모델의 레이어, 학습률, 배치 크기 등에 대한 최적의 하이퍼파라미터를 찾는 예제 코드입니다. 2022. 02. 20 최초작성 아래 링크들을 참고하여 Red Wine Quality 데이터셋(https://w..
Python용 Mediapipe의 손가락 인식 코드를 수정하여 가위, 바위, 보를 인식하여 화면에 출력하는 예제 코드를 만들었습니다. OpenPose의 손인식에 비해 주위 환경 영향이 거의 없으며 손가락 인식이 끊김없이 지속..
분산과 표준 편차 차이를 정리했습니다. 공부한 내용을 정리할 목적으로 작성한 것이라 오류가 있을 수 있습니다. 2022. 02. 06 최초작성 어떤 하나의 통계적 관찰 대상이 되는 집단전체를 모집단이라 하고, 그 부..
MacBook M1에 Tensorflow를 설치하는 방법을 다룹니다. 참고 https://developer.apple.com/metal/tensorflow-plugin/ 2022. 2. 4 최초작성 2022. 5. 2 xcode 설치 추가 macOS 12.0 이상에서 가능하며 글 작성 시점..
Macbook M1에 Miniforge를 설치하여 Python 개발환경을 만든 후, Visual Studio Code와 연동하는 작업까지 진행합니다. Macbook M1용 Tensorflow를 사용하려면 Miniforge를 사용해야 해서 진행했습니다. 2022. 2...
“10 minutes to pandas” 문서를 따라해보며 작성했습니다. https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html 열 이름의 위치가 맞지 않으니 실행하여 결과에서 확인하세요. 2022. 02. 02 최..
“10 minutes to pandas” 문서를 따라해보며 작성했습니다. https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html 열 이름의 위치가 맞지 않으니 실행하여 결과에서 확인하세요. 2022. 02. 02 최..
“10 minutes to pandas” 문서를 따라해보며 작성했습니다. https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html 2022. 02. 02 최초작성 matplotlib와 함께 사용하여 그래프를 그릴 수 있습니다..
“10 minutes to pandas” 문서를 따라해보며 작성했습니다. https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html 2022. 02. 02 최초작성 2022. 3. 20 샘플링 특정 주기로 샘플링된 데이터를 원..
“10 minutes to pandas” 문서를 따라해보며 작성했습니다. https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html 2022. 02. 02 최초작성 2022. 03. 20 연결하기 concat 메소드를 사용하여 열방..
“10 minutes to pandas” 문서를 따라해보며 작성했습니다. https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html 2022. 02. 02 최초작성 2022. 03. 20 DataFrame이나 Series에 저장된 데이터에..
“10 minutes to pandas” 문서를 따라해보며 작성했습니다. https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html 2022. 02. 02 최초작성 2022. 03. 19 열 이름과 행 인덱스로 선택하기 df["A"]..
“10 minutes to pandas” 문서를 따라해보며 작성했습니다. https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html 2022. 1. 30 최초작성 2022. 3. 19 head에 지정한 개수만큼 DataFrame 상단의..
“10 minutes to pandas” 문서를 따라해보며 작성했습니다. https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html 2022. 1. 30 최초작성 2022. 3. 19 값이 저장되어 있는 파이썬 리스트를 전달하..
윈도우 환경에서 환경 변수를 사용하지 않고 Visual Studio 프로젝트의 코드에서 Gstreamer 플러그인 위치 지정하는 방법입니다. 2022. 1. 23 최초작성 다음 코드에서 빨간색 부분만 Windows용 gstreamer가 설치된..
MFC 다이얼로그(dialog)의 Static 함수에서 컨트롤 접근하는 방법을 다룹니다. 2022. 01. 23 최초작성 1. 다이얼로그 프로젝트의 파일 중 CWinApp를 상속 받은 파일 이름이 App로 끝나는 헤더 파일을 열어 다음 빨..
sys.getdizeof 메소드와 NumPy배열의 nbytes 속성을 사용하여 Numpy 배열의 크기를 확인해봤습니다. 2022. 01. 22 최초작성 동적으로 크기를 늘릴 수 있는 Python의 리스트와 달리 NumPy 배열을 생성하면 고정된..
데이터 파일을 메모리에 로드하지 않고 다룰 수 있는 dask를 간단히 사용해보았습니다. 자세한 사용방법은 아래 링크를 참고하세요. https://docs.dask.org/en/latest/ 2022. 1. 17 최초작성 소스코드 파일 이름을..
Visual Studio 2019에서 GStreamer를 사용하기 위해 설정하는 방법을 설명합니다. 2022. 1. 13 최초작성 1. 다음 링크에서 Visual Studio용 GStreamer를 다운로드할 수 있습니다. 글작성 시점에서 최신버전은 1.18..
스크린샷처럼 특정 장소에 대한 설명, 사진, 지도를 한 화면에 보여주는 뷰를 만들어 봅니다. 설명, 사진, 지도를 보여주는 뷰를 각각 만들어서 마지막에 하나로 결합합니다. Introducing SwiftUI( https://develo..
fps를 화면에 표시해주고 동영상 파일로 저장하면서 webcam 영상을 보여주는 OpenCV C++ 예제 코드입니다. 저장된 동영상 파일이 빠르게 재생되는 문제가 없습니다. 2022. 1. 3 최초작성 #include #include using..
사용자의 API 요청을 위한 정보를 제공할 수 없는 경우 사용자에게 알려주는 에제입니다. Flask의 Quickstart 문서를 보며 진행한 과정을 작성한 글입니다. https://flask.palletsprojects.com/en/2.0.x/quickstar..
Visual Studio Code에서 SSH 접속후, Tensorflow 코드를 실행하면 다르게 동작하네요. mobaXterm으로 SSH 접속하여 Tensorflow 코드를 실행한 경우와 실행결과가 다릅니다. 성능에 영향을 주는지까지는 확인못해봤..
특정 경로의 파일 목록을 리스트에 저장하는 파이썬 예제 코드입니다. 2021. 12. 27 최초작성 다음 구조의 디렉토리를 생성한 후, 진행했습니다. 첫번째 버전 파일 이름 목록에 경로를 추가합니다. import os pat..
파이썬 리스트에 저장된 모든 문자열에 똑같은 문자열을 결합하는 예제입니다. 2021. 12. 27 최초작성 number = [ '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] print(number) number = [s +..
Flask는 사용자에게 피드백을 제공하는 간단한 방법인 플래싱(flashing) 시스템을 제공합니다. Flask의 Quickstart 문서를 보며 진행한 과정을 작성한 글입니다. https://flask.palletsprojects.com/en/2.0.x/qu..
세션(session) 객체는 사용자에 대한 특정 정보를 저장하는데 사용할 수 있습니다. 쿠키를 사용하여 구현되며 암호로 서명하기 때문에 쿠키의 내용을 수정할 수 없습니다. 이 세션을 사용하여 로그인된 아이디를..
Flask에서 JSON을 응답하는 것을 살펴봅니다. Flask의 Quickstart 문서를 보며 진행한 과정을 작성한 글입니다. https://flask.palletsprojects.com/en/2.0.x/quickstart/ 부족한 부분이나 이상한 부분이 있을 수..
웹페이지에 액세스할 수 없는 경우 리다이렉트하여 에러를 사용자에게 보여주는 방법을 다룹니다. Flask의 Quickstart 문서를 보며 진행한 과정을 작성한 글입니다. https://flask.palletsprojects.com/en/2.0.x/q..
request 객체를 사용한 로그인, 파일 업로드, 쿠키 예제입니다. Flask의 Quickstart 문서를 보며 진행한 과정을 작성한 글입니다. https://flask.palletsprojects.com/en/2.0.x/quickstart/ 부족한 부분이나 이상..
Flask에서 템플릿을 렌더링하는 예제입니다. Flask의 Quickstart 문서를 보며 진행한 과정을 작성한 글입니다. https://flask.palletsprojects.com/en/2.0.x/quickstart/ 부족한 부분이나 이상한 부분이 있을 수..
Flask에서는 route() 데코레이터를 사용하여 함수를 URL에 바인딩합니다. Flask의 Quickstart 문서를 보며 진행한 과정을 작성한 글입니다. https://flask.palletsprojects.com/en/2.0.x/quickstart/ 부족한 부분..
Flask의 기본 응답 유형인 HTML을 리턴할때 렌더링된 사용자 값을 공격으로부터 보호하기 위해 이스케이프해야 합니다. 나중에 소개될 Jinja로 렌더링된 HTML 템플릿은 이 작업을 자동으로 수행합니다. 본 포스팅..
실행한 파이썬 파일의 경로를 얻는 방법입니다. Visual Studio Code에서 하나의 폴더내에 서브 폴더별로 파이썬 코드를 관리할 경우 불러올 데이터 파일 위치를 파이썬 코드 파일 위치로 해야 합니다. 2021. 12. 1..
Matplotlib를 사용하여 FFT를 그려보았습니다. 2021. 12. 18 최초작성 2021. 12. 31 예제 코드 추가 2021. 01. 17 예제 코드 추가 아직 정확히 개념이 잡힌 상태가 아니라서 틀린점이 있을 수 있으니 참고용으로만..
Visual Studio Code에서 SSH를 사용하여 raspberry pi에 접속하여 C/C++ 원격 개발을 준비하는 과정을 설명하고 있습니다. 2021. 12. 15 최초작성 2022. 4. 7 컴파일 방법 추가 Visual Studio Code를 설치하는 방..
메모리에 한번에 올리기 힘든 데이터셋에 표준화(standardization)를 적용하기 위해 평균 및 표준 편차를 계산하기 위해 사용한 방법입니다. 2021. 12. 12 최초작성 1. JDK가 필요합니다. 안드로이드 스튜디오를..
Matplotlib를 사용하여 정규분포를 그려봤습니다. 2021. 12. 11 최초작성 다음 링크를 참고하여 작성했습니다. https://www.geeksforgeeks.org/normal-distribution-plot-using-numpy-and-matplotlib/ https://num..
tensorflow dataset을 크기 10인 batch로 나눈 다음 각 batch에 대해 크기 3 window를 적용한 예제입니다. 2021. 12. 11 최초작성 import tensorflow as tf import numpy as np ds= tf.data.Dataset.range(120) si..
모델을 평가하는 방법인 특이도, 민감도, 재현율, 정확도, 정밀도를 정리했습니다. 2021. 12. 9 최초작성 2022. 2. 3 우선 아래 표에 있는 TP, FP, TN, FN - 4가지에 해당되는 개수를 각각 구해야 합니다. 4가지..
Tensorflow Dataset의 일부만 사용하는 예제입니다. 2021. 12. 6 - 최초작성 2021. 12. 8 - 최종작성 import tensorflow_datasets as tfds # tensorflow dataset 'minst'의 train과 test를 각각 전체를 사용합니다..
range를 이용하여 2의 배수 저장된 리스트를 생성하여 넘파이 배열의 인덱스로 사용하는 예제입니다. 2021. 12. 6 - 최초작성 import numpy as np a = np.arange(10) print(a) idx = list(range(1,..