This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

*/

코로나 간이 검사

 코로나 간이 검사를 받았습니다. ㅜ.ㅜ잠실운동장 건너편 아시아공원 입구에 있는 간이 검사소에서... 점심시간전에 방문했는데 대기자 6~7명 수준으로 대기시간 10분이내에 진행이 되네요.코에서 검체를 체취하는데 고통스럽습니다. 빨리 백신이 도입되어야 할 것 같네요.의료진들 봉사자들 모두 힘내세요..&nb...

Linux에서 파일명 일괄 변경

 현재 디렉토리 하위에 있는 file명이 from으로 시작되는 모든 파일(fromxxx.xx)을 to로 시작하는 파일로 한번에 변경 $ find ./ -name "from*" | sed -e 'p' -e "s/from/to/g" | xargs -n 2 mvrename 명령어로 변경하기형식 : rename 's/파일명/변경할파일명/' 대상파일필터예)  $ rename 's/from/to/' ...

Visual Studio Code에서 arduino 사용하기

Visual Studio Code에서 arduino를 위한 확장 설치설치순서1.확장탭을 누르고 2.검색창에 "arduino"를 입력하면 arduino관련된 확장모듈이 검색된다. 첫번째로 검색된 Microsoft에서 나온 Arduino 확장의 3. install버튼을 클릭한다.전제조건Arduino IDE 필요. (다운로드 에서 arduino IDE를 다운받아 설치)Visual Studio Code 설정VS Code에서  < Ctrl > + < , > 두키를 동시에 누르면 Search settings 메뉴가 표출된다 여기에서 Extensions > Arduino configuration 을 선택하고 아래와 같이 Edit in settings.json를 편집한다.{    "arduino.path": "C:/Program Files (x86)/Arduino",    "arduino.commandPath": "arduino_debug.exe",    "arduino.logLevel": "info",    "arduino.allowPDEFiletype": false,     "arduino.enableUSBDetection": true,    "arduino.disableTestingOpen": false,    "arduino.skipHeaderProvider": false,    "arduino.additionalUrls": [        "https://raw.githubusercontent.com/VSChina/azureiotdevkit_tools/master/package_azureboard_index.json",        "http://arduino.esp8266.com/stable/package_esp8266com_index.json"    ],    "arduino.defaultBaudRate": 115200}"arduino.path"...

Image buffer를 Bitmap file format으로 저장하기(RGB)

Image처리를 하다보면 memory buffer에 있는 image raw데이터를 BMP포멧으로 저장할 필요가 있다.RGB Buffer(24bit)를 widows bitmap format으로 저장하는 함수// _fname : 저장할 파일 명( xxx.bmp )// _buf : RGB 순서로 구성된 Image buff// _w, _h : image width, height void saveBMPfile(char *_fname, uchar* _buf, int _w, int _h){    int filesize = 54 + _w * _h * 3;    unsigned char bmpfileheader[14] = {'B','M', 0,0,0,0, 0,0, 0,0, 54,0,0,0};    unsigned char bmpinfoheader[40] = {40,0,0,0, 0,0,0,0, 0,0,0,0, 1,0, 8,0};    unsigned char bmppad[3] = {0,0,0};    bmpfileheader[ 2] = (unsigned char)(filesize    );    bmpfileheader[ 3] = (unsigned char)(filesize>> 8);    bmpfileheader[ 4] = (unsigned char)(filesize>>16);    bmpfileheader[ 5] = (unsigned char)(filesize>>24);    bmpinfoheader[ 4] = (unsigned char)( _w    );    bmpinfoheader[ 5] = (unsigned char)( _w>> 8);    bmpinfoheader[ 6] = (unsigned char)( _w>>16);    bmpinfoheader[ 7] = (unsigned char)( _w>>24);    bmpinfoheader[ 8] = (unsigned char)( _h    );    bmpinfoheader[ 9] = (unsigned char)( _h>> 8);    bmpinfoheader[10] = (unsigned char)( _h>>16);    bmpinfoheader[11] = (unsigned char)( _h>>24);    FILE* fp;    fp =fopen(_fname, "wb");    if(fp!=NULL) {        fwrite(bmpfileheader, 1, 14, fp);        fwrite(bmpinfoheader, 1, 40, fp);        fwrite(_buf, _w*_h, 3, fp);        fclose(fp);    }}*...

Image buffer를 Bitmap file format으로 저장하기(Gray image)

 Image처리를 하다보면 memory buffer에 있는 image raw데이터를 BMP포멧으로 저장할 필요가 있다.Gray Buffer(8bit)를 widows bitmap fotmat으로 저장하는 함수// _fname : 저장할 파일 명( xxx.bmp )// _buf : RGB 순서로 구성된 Image buff// _w, _h : image width, height void saveBMPfile(char *_fname, uchar* _buf, int _w, int _h){    int filesize = 54 + 256*4 + _w*_h;    unsigned char bmppalete[256*4];    unsigned char bmpfileheader[14] = {'B','M', 0,0,0,0, 0,0, 0,0, 54+256*4,0,0,0};    unsigned char bmpinfoheader[40] = {40,0,0,0, 0,0,0,0, 0,0,0,0, 1,0, 8,0};    unsigned char bmppad[3] = {0,0,0};...

PC에서 ARM용 크로스 컴파일 후 strip 시 오류 발생

 OpenCV를 ARM용으로 Cross Compile후 strip실행시 아래와 같은 오류 발생$ strip -s *.so       strip: Unable to recognise the format of the input file 'libopencv_calib3d.so'원인은 strip을 호스트용을 사용해서 발생한 것으로 ARM용으로 strip을 할수 있는 arm-linux-gnueabi-strip을 사용하면 정상적으로 strip이 되는것을 확인할 수 있다.$ arm-linux-gnueabi-strip -s *...

VisualStudio Code 에서 C++ 사용하기

Windows 10 OS에서 Visual Studio Code 환경에서 C++ 컴파일 환경을 구축해보자Visual Studio Code 다운로드우선 Visual Studio Code를 여기(code.visualstudio.com)서 다운로드 받아 설치합니다.C++개발을 위한 VSC(Visual Studio Code) 설정VSC를 다운받아 설치하고 실행하면 환영창이 나오고, 좌측에 파일탐색, 찾기,  Git, 실행/디버그, 확장(extension) 탭 5개가 있는것을 확인할 수 있다.제일 아래쪽에 위치한 녹색으로 표시한 확장 탭을 누르고, 노란색으로 표기한 검색창에 "C++"을 입력하면 위의 사진과 같이 검색 결과 표시된다.C++로 개발하기위해서는 2개의 extension을 설치해야 되는데 첫번째 확장은 결과리스트의 맨위에 있는 "C/C++"이다. 해당 항목(빨간색영역에 있는)의 Install을...

Window Subsystem for Linux(WSL) 설치

요구사항OS : Windows 10 ver. 16237.0이상Architecture : x64, ARM64Windows features윈도우즈 제어판 -> 프로그램 및 기능 -> Windows 기능 켜기/끄기Windows 기능 켜기/끄기에서 "Linux용 Windows 하위 시스템"을 체크하고 확인 버튼을 클릭하면 아래와 같이 필요한 파일들을 검색하고 세팅한후 재부팅 메세지가 출력된다.재부팅후 Microsoft Store을 실행하고 ubuntu를 검색한다.ubuntu  혹은 원하는 버전이 있으면 해당 버전을 선택하고 설치버튼을 클릭한다.설치가 완료되면 시작메뉴에 ububtu항목이 추가된다.시작메뉴에서 Ubuntu를 클릭하면 몇분간 초기화하고 새로운 사용자명과 패스워드를 설정하라는 메세지가 나온다.사용자명과 패스워드를 정상적으로 등록하고 설치가 완료된 화면참고사항설치된 디렉토리는?...

OrangePi Lite 2 Swap 메모리 설정

 OrangePi Lite 2 Memory 1G를 사용중인데 약간 크기가 큰 것들을 컴파일 하면 시스템이 아주 아주 느려져 재부팅을 시키게 되는 일이 잦아 진다. 이때 swap 영역을 잡아 주면 시스템이 느려지는 현상을 상당히 완화 시킬 수 있다.스왑(swap) 메모리리눅스에서 swap메모리는 윈도우즈의 가상 메모리와 동일하며, 시스템의 램(RAM)이 부족한 경우 swap메모리를 이용하게 된다.스왑메모리 영역을 설정하는 방법은 스왑 파티션이용방법과 스왑파일을 만들어 사용하는 방법이 있다. 스왑파일을 만들어 사용하는 방법을 간단히 정리한다.스왑파일 생성1GByte의 스왑메모리슬 설정한다. 크기를 늘리고자하면 필요한만큼 숫자를 올려주면 된다. 예를 들어 OpenCV를 build할 경우 2G정도 사용하는 것이 좋다.$ sudo fallocate -l 1G /swapfile권한 설정$ sudo chmod 600 /swapfile스왑메모리로 변경$ sudo mkswap /swapfile스왑메모리...

OrangePi Lite 2 rootfs 확장

사용 Image : OrangePi_lite2_ubuntu_xenial_desktop_linux5.3.5_v2.0.1.img발행일 : 2019년 12월 31일OrangePi 이미지를 설치하고 나서 처음 부팅했을때 rootfs를 사용하고 있는 SD카드의 전체를 사용하도록 확장할 필요가 있다.확장하기전 상태$ df hrootfs확장 스크립트 실행$ resize_rootfs.sh확장후 상태$ df -h* Raspberry Pi에서 root fs 확장 방법라즈베리파이에서는 raspi-config 파일을 이용하면 된다$ sudo raspi-config7. Advanced Options 선택A1. Expand Filesystem 선택종료...

OrangePi Lite 2 VNC server 설치

OrangePi Lite 2에 VNC 서버 설치하기X11vnc 패키지 설치$ sudo apt install x11vncVNC 접속 패스워드 설정$ x11vnc -storepasswdVNC서버 시작$ x11vnc -forever -shared -rfbauth ~/.vnc/passwd자동실행하도록 설정위에서 설정한 비밀번호를 복사$ sudo cp ~/.vnc/passwd /etc/x11vnc.pass자동실행 스크립트 작성/etc/rc.local파일에서 exit 0위에 아래 내용 삽입$ sudo nano /etc/rc.local x11vnc -display :0 -auth /var/run/lightdm/root/:0 -forever -bg -o /var/log/x11vnc.log -rfbauth /etc/x11vnc.pass -rfbport 5900 IP주소 확인$ ifconfig재부팅OrangePi를...

Raspberry 4에서 tensorflow 2.2 설치

Tensorflow 2.2 package download$ wget http://1.229.109.140:3562/tensorflow/tensorflow-2.2.0.armv7l/tensorflow-2.2.0-cp37-none-linux_armv7l.whl--2020-09-03 16:45:10--  http://1.229.109.140:3562/tensorflow/tensorflow-2.2.0.armv7l/tensorflow-2.2.0-cp37-none-linux_armv7l.whlConnecting to 1.229.109.140:3562... connected.HTTP request sent, awaiting response... 200 Length: 157689306 (150M)Saving to: ‘tensorflow-2.2.0-cp37-none-linux_armv7l.whl’tensorflow-2.2.0-cp...

linux 카메라 콘트롤 - v4l2-ctl

 Linux머신에서 설치되어 있는 카메라의 정보 확인 및 제어할 수 있는 명령v4l2-ctl 옵션확인$ v4l2-ctl설치된 카메라의 모든 정보 확인$ v4l2-ctl --all 설명 추가드라이버 정보 보기$ v4l2-ctl -D 디바이스에서 제공될수 있는 포멧 리스트$ v4l2-ctl --list-formats 프레임크기와 인터벌을 포함한 디바이스에서 제공될 수 있는 포멧 리스트$ v4l2-ctl --list-formats-ext $ lsu...

[OpenCV] Raspberry Pi 4에 opencv 3.4.9 설치

라즈베리파이 4에 OpenCV 3.2라이브러리 설치하기기존에 OpenCV가 설치되어 있었을 경우 다음과 같이 삭제하고 진행한다.$ sudo apt purge libopencv* python-opencv $ sudo apt autoremove $ sudo apt update $ sudo apt upgrade기존에 OpenCV가 설치되어 있지않았다면 위를 건너 뛰고 OpenCV라이브러리를 빌드하기 위한 필요 라이브러리들을 설치한다.$ sudo apt install -y -y build-essential cmake $ sudo apt install -y pkg-config $ sudo apt install -y libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev $ sudo apt install -y libavcodec-dev libavformat-dev...

Ubuntu apt-get, apt-cache 명령

apt-get은 데비안 계열(ubuntu)의 리눅스에서 사용되는 패키지관리 명령어 도구apt-get, apt-cache 대신 apt를 사용하세요. 진행사항을 프로그레스로 보여준다던가 업데이트해야할 갯수등 Option을 넣어야하는것들을 기본으로 사용하게 합니다.Package Index정보를 업데이트 - /etc/apt/source.list에 있는 인텍스 정보를 최신 정보로 갱신$  sudo apt updatePackage 설치$  sudo apt install 패키지이름Package 재설치$  sudo apt install 패키지이름Package 삭제 - 설정파일은 지우지 않음$  sudo apt remove 패키지이름Package 삭제 - 설정까지 모두 지움$  sudo apt --purge remove 패키지이름Package 소스코드 다운로드$  sudo apt source 패키지이름다운로드 받은 소스를 의존성있게 빌드$  sudo apt build-deb 패키지이름설치된 Package Upgrade - 설치되어...

Protocol buffers ?

 프로토콜 버퍼란?구글에서 만들어서 공개한 구조화된 데이터를 직렬화 하기 위한 언어중립적이고, 플랫폼 중립적인 확장 메카니즘이며, 저장을 목적으로 서로 통신할 프로그램을 개발할 때 유용하다.지원 언어 : C++, Python, JAVA, GO위키피디아 : 프로토콜버퍼구글 개발자 ...

[OpenCV] OpenCV4에서 UVC Camera 사용시 capture 안되는 이슈

환경 :- 라즈베리파이 4 with 라즈베리안- OpenCV 4 guvcview로는 video가 나오는데 테스트하려는 코드에서는 아래와 같은 오류 발생..[ WARN:0] global /home/pi/work/opencv/opencv-4.1.2/modules/videoio/src/cap_gstreamer.cpp (933) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1[ WARN:0] global /home/pi/work/opencv/opencv-4.1.2/modules/videoio/src/cap_gstreamer.cpp (1184) setProperty OpenCV | GStreamer warning: GStreamer: unhandled prope...

Linux 설치된 특정 Library 버젼 확인하는 방법

 설치된 라이브러리의 버젼을 확인하고자 할 때 pkg-config 명령으로 아래와 같이 확인.예를 들어  python의 버젼을 확인하고자 할때$  pkg-config --modversion python 시스템에 설치된 모든 python버젼을 찾고 싶을때$  pkg-config --list-all | grep pyth...

팡팡은 싫은데

중앙일보 만평에 부동산 팡팡..부동산 좀 안오르면 좋...

정수기 필터 교환

정수기를 별도 설치하지않고 싱크대 벽면에 필터와 정수전용 수도꼭지를 달아서 사용하고 있다.요즘 수도물에 벌레가 나온다는 뉴스에 오랜만에 정수 필터를 교체 했다.필터 상태를 보니 2018년에 교체하고 2년간 교체를 하지않았네.. ㅡ,ㅡ필터 순서는세디먼트 필터-프리카본필터-UF엠브레인필터-포스트카본 필터 순으로 설치한다.설치 전에 우선 필터 청소가 필요하다.방법은 수도물에 필터를 연결하여 2양동이 정도 그냥 흘려 보내면된다.세디먼트 필터를 연결하고 물흘리기 2양동이 정도 흘리면 그 뒤쪽에 프리카본 필터 연결하고 물흘리기 2양동이 ...그렇게 4개 필터를 다 청소하면 원래 벽에 붙여 놓았던 필터를 제거 하고 그자리에 청소한 필터를 설치하고 정수된 물이 잘나오는지 확인하면 끝.그리고 마지막으로 교체 날짜를 적어 준다..맨 마지막필터는 교체를 못했네..물맛이 좋아지는 필터라고 했는...

석촌호수 롯데타워

석촌호수 서호에서 바라본 롯데타워 야경롯...

자외선 살균기 만들기

코로나로 마스크 사용양이 늘어 매번 새것으로 사용하기에는 비용이 감당 안되 간단한 자외선(UVC) 살균기를 만들어 보았다.마스크 뿐만아니라 휴대폰도 간혹 살균하고, 침대 매트리스나 화장실 청소할때 간혹 사욯한다.Aliexpress에서 아래와 같은 UVC Lamp를 주문하고, 다이소에서 천원짜리 바구니를 구매했다.추가적으로 조그만 나무조각, 스위치, 전선등을 이용해 아래와 같이 조립...