본문 바로가기
[C++프로그래밍] Gaussian(가우시안) 필터 알고리즘 개념과 소스 [C++프로그래밍] Gaussian(가우시안) 필터 알고리즘 개념과 소스 Gaussian 스무딩의 공식은 아래이고, C++프로그래밍 소스로 구현하면 그 아래처럼 됩니다. 아래에서 소개하는 C++프로그래밍 가우시안 필터 소스는 Qt Creator에서 작업한 결과입니다. Qt로 구성했으나, 일반적인 C++프로그래밍 소스와 호환됩니다. Qt만의 특성은 딱히 없습니다. 있어봐야 QVector 정도인데, 일반 Vector와 같습니다. (Qt프로그래밍과 C++프로그래밍의 차이는 매우 적어요. Qt 소스지만, C++ 프로그래밍에도 적용할 수 있는 가우시안 필터 소스입니다) 헤더 파일 (Gausian .h) 12345678910111213141516171819202122232425#ifndef GAUSIANFILTER.. 2017. 1. 21.
[MFC강좌] 메모리맵 파일 소스, WinCE(windows embedded compact) [MFC강좌] 메모리맵 파일 소스, WinCE(windows embedded compact) MMF(Memory Map File)를 구현한 소스로 MFC강좌 알려드립니다. WinCE MMF는 메모리맵파일(메모리 관리 기법)로 프로그래밍 강좌에서 메모리 관리 기법으로 주로 소개하는 것입니다. 간단한 이론은 구글에서 검색하시면 되고, 이 포스트에선 소스를 제공하며 간단히 주요 소스를 언급합니다. 일단, WinCE 메모리맵파일을 이용해 메모리에 읽고 쓰는 프로그램 UI는 아래와 같습니다. bbb는 쓰는 프로그램이고, aaa는 읽는 프로그램입니다. 아래 첨부한 MFC강좌용 예제 소스는 MMF를 구현한 것인데, 읽기 쓰기 모두 됩니다. 하지만, 윈도우7과 윈도우CE(windows embedded compact) .. 2017. 1. 20.
리눅스 Flex 컴파일러 윈도우 설치 (LEX Linux GNU 버전을 Windows7) 리눅스 Flex 컴파일러 윈도우 설치 (LEX Linux GNU 버전을 Windows7) 리눅스 Flex 컴파일은 리눅스 Lex의 GNU 버전 프로그램입니다. 단순한 GNU 버전인 것만은 아니고, 많은 부분이 개선된 프로그램이라고 합니다. MinGW 설치(윈도우즈에 리눅스 개발환경 설정하기) 12flex linenos.flexgcc lexyy.c -lflcs 위와 같은 리눅스 Flex 컴파일 명령어들을 사용하기 위해선 윈도우즈에 리눅스 개발환경을 설정해야 합니다. 리눅스에선, 12yum install bisonyum install flexcs 와 같은 명령어로 쉽게 설치해야 사용할 수도 있습니다. 저와 같이 리눅스에서 사용하는 컴파일러인 gcc를 사용하기 위해선 MinGW를 윈도우7에 먼저 설치해야 합니.. 2017. 1. 19.
제이쿼리 예제 2개. 구글맵 gps, 키바인딩 (jQuery Googlemap, key) 제이쿼리 예제 2개. 구글맵 gps, 키바인딩 (jQuery Googlemap, key) 1. 제이쿼리 + 구글맵을 활용한 GPS 참조 - What is jQuery GPS [클릭]소스 - gps_jquery.zip [클릭] 구글맵을 자신의 웹 사이트에 추가하면, 어쩔 수 없이 페이지 로딩 속도 등 전반적인 퍼포먼스가 증가해 느려지고 맙니다. 그래서 제이쿼리 구글맵 GPS는 하나의 해결책이 될 수 있습니다. 가볍고 쉽게 구동이 되며, 그래픽 이미지 등도 로드가 가능합니다. 게다가 이 소스는 오픈되어 있어서 다운도 받아서 사용할 수 있지요. 2. 제이쿼리 + 라이브러리를 이용한 KeyBinding 참조 - Javascript Char Codes (Key Codes) [클릭] 제이쿼리를 통해 Input Bo.. 2017. 1. 19.
안드로이드 오류 Failed to install apk on device timeout 처리 3개 안드로이드 오류 Failed to install apk on device timeout 처리 3개 Failed to install on device timeout 안드로이드 오류 해결을 위한 포스팅인데 명확한 해결책은 찾지 못했습니다.본인의 경험상, 안드로이드 개발 중 아래 일들을 하고 나면, 대게 자알~ 되더이다.... ㅡㅡ,. 1. USB 케이블 포트를 바꿔본다(전면에서 후면으로, 후면에서 전면으로, 1번 포트에서 2번 포트로 등등....)2. USB 케이블을 바꿔본다3. 이클립스 종료 후 재시작해본다4. 메모리 확보를 위해 다른 프로그램을 종료해 본다5. 5분간 쉰 뒤에 다시 시도해 본다(흡연자의 경우 담배 한 대 피우고 해보든지) 그래도 안드로이드 에러가 해결 안 될 경우, 이클립스에서 뭔가를 건.. 2017. 1. 18.
[Qt프로그래밍] 우분투 리눅스Qt 설치 방법 (Ubuntu 14.04 - 5.3.0) [Qt프로그래밍] 우분투 리눅스Qt 설치 방법 (Ubuntu 14.04 - 5.3.0) 일단, Qt5를 설치할 준비가 되었다는 전제하에 참조한 링크의 글 중 핵심만 요약합니다. 제 경우엔 패키지 호환성 문제로 삽질을 좀 했었네요. 모든 패키지 설치 텍스트 : 다운 [클릭] 참조 1 - Install Qt 5.3 in Ubuntu 14.04 [클릭] 우분투 14.04 기준으로 리눅스Qt 5.3 설치 시 패키지 선택. 32비트 wget http://download.qt-project.org/official_releases/qt/5.3/5.3.0/qt-opensource-linux-x86-5.3.0.runchmod +x qt-opensource-linux-x86-5.3.0.run./qt-opensource-l.. 2017. 1. 18.
C# Tuple 튜플의 개념(클래스)과 사용 예제 7개 (List, var, string 응용) C# Tuple 튜플의 개념(클래스)과 사용 예제 7개 (List, var, string 응용) C# Tuple 고양이 한 마리가 방 안으로 들어옵니다. 이 고양이의 털은 노랗고, 부드럽습니다. 튜플은 이런 정보를 모두 저장할 수 있는 클래스입니다. 튜플의 인스턴스들은 변경할 수 없는(immutable) 고정 항목을 갖습니다. 그리고 Tuple의 타입은 Class라는 것을 잊지 마세요. 아래 예제에선 3개의 아이템을 갖는 튜플을 선합니다. 그리고, 아이템 1, 2, 3의 속성을 읽습니다. 변경하진 않습니다. (못합니다) 1234567891011121314151617181920212223242526272829303132using System; class Program{ static void Main() {.. 2017. 1. 17.
[JavaCC 강좌] 자바CC 설치, 사용법, 문법, API, 계산기 예제 [JavaCC 강좌] 자바CC 설치, 사용법, 문법, API, 계산기 예제 JavaCC 설치 1. https://javacc.dev.java.net/[클릭]에 접속한다. 2. javacc-5.0.zip을 다운받는다. 3. C 디렉터리 아래에 압축을 푼다. 4. path에 C:\JavaCC\bin을 추가한다. JavaCC 문법, API 다루기 5. 간단한 덧셈에 대한 문법을 체크한다. Adder.jj라는 이름으로 다음 문서를 저장한다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950options{ LOOKAHEAD=2;} PARSER_BEGIN(Adder) public class Adder{.. 2017. 1. 17.
이클립스 팀 CVS 학습 - 버전화, 중간 검토 프로젝트 버전화 프로젝트가 완료되었으니 이제 버전화할 차례입니다. 파일 자원을 확약하는 동안 조금만 관심을 기울였다면 저장소가 자원에 버전 번호, 즉 개정 번호를 자동으로 지정한다는 사실을 알았을 것입니다. 파일을 확약하면서 제공해야 하는 유일한 정보는 확약 주석입니다. 프로젝트를 버전화 하려면 다음을 수행하십시오. 1. JanesTeamProject 프로젝트를 선택하십시오. 2. 네비게이터 보기에서 팀 > 버전으로 태그...를 선택하십시오. 3. 태그 자원 대화 상자가 열리면 버전 이름 A1을 입력하고 확인을 클릭하십시오. 4. CVS 저장소 보기를 선택하십시오. 5. 버전과 JanesTeamProject를 펼치십시오. 이제 JaneTeamProject 아래에 버전 번호가 A1인 프로젝트의 버전이 있습.. 2017. 1. 16.
CISC 8051 마이크로 프로세서 구조, 종류, 메모리맵, 레지스터, 특징 CISC 8051 마이크로 프로세서 구조, 종류, 메모리맵, 레지스터, 특징 CISC 마이크로 프로세서Intel 계열 마이크로프로세서의 종류 및 역사 CISC - History CISC - 8051 마이크로 프로세서 구조 8051: 8-bit microcontroller의 대표- 내부의 메모리 : 256바이트의 RAM - 하위 128바이트 : 내부 데이터 메모리용 - 상위 128바이트 : 특수 기능 레지스터 (SFR or Status Function Registers) : 4K 바이트의 프로그램 메모리 : 프로그램 메모리와 데이터 메모리 : 각각 64KByte까지 확장 가능 - 4개의 8bit 병렬 입출력 포트- 2개의 16bit 타이머, 카운터- 1개의 시리얼 포트 내장 CISC - 8051 종류 CI.. 2017. 1. 16.
임베디드 프로세서 종류 (시스템, 설계, 하드웨어, 솔루션의 특징 개념) 임베디드 프로세서 종류 (시스템, 설계, 하드웨어, 솔루션의 특징 개념) 임베디드 프로세서 입문 내장형 시스템 개발 순서 - 임베디드 프로세서 종류 선정 - 운영체제의 선정 - 프로그램 개발환경의 구축 - 시스템을 개발 임베디드 프로세서 - 중앙처리장치(Central Processing Unit 또는 CPU) - 임베디드 프로세서, 프로세서 코어(core), 혹은 간단하게 코어(core) - 데이터부(Datapath Unit) : 레지스터, ALU(Arithmetic Logic Unit), BUS : 곱셈기 : 멀티미디어 데이터의 신속한 처리 - 컨트롤부(Control Unit) : 데이터부의 각 모듈에서 실행될 수 있도록 모든 제어 신호를 발생하는 역할을 수행 마이크로프로세서, 마이크로컨트롤러 마이크로.. 2017. 1. 15.
C++ 멀티스레드 디버깅 방법 2가지, 메시지와 sleep 이용한 이론 C++ 멀티스레드 디버깅 방법 2가지, 메시지와 sleep 이용한 이론 C++ 멀티스레드 디버깅 프로그램의 버그는 운영체제의 스케줄링 타이밍과 연관되어 변동되는 경우가 많으므로 재현하기가 매우 어려울 수 있다. 따라서 C++ 멀티스레드 디버깅 프로그램의 디버깅은 몇 가지 특수한 테크닉을 요구한다. 1. 메시지에 기반을 두어 디버깅한다 C++ 멀티스레드 디버깅 프로그램을 디버깅할 때는 디버깅를 이용하는 것보다 디버깅 메시지를 이용하는 것이 더 효과적일 수 있다. 애플리케이션의 종류에 따라서 cout이나 로그 파일 또는 GUI 컴포넌트 등을 통해 메시지를 출력할 수 있다. 크리티컬 섹션의 시작과 끝 그리고 락의 획득과 해제 시점 각각에 멀티스레드 디버깅 메시지를 삽입한다. 여기서 출력되는 메시지를 분석하면 .. 2017. 1. 14.