Showing posts with label TistoryOldPost. Show all posts
Showing posts with label TistoryOldPost. Show all posts

2015/09/23

AutoIt3 Script 편집용 SciTE 사용자 설정하기

AutoIt3를 압축해제 하면 SciTE 폴더가 있고 이 폴더에는 au3.properties와 SciTE 실행 파일이 있다. 그리고 SciTE4AutoIt3 portable 버전을 압축해제하면 거기에도 SciTE 실행파일이 존재한다. AutoIt3와 함께 배포되는 실행파일이 최신 빌드인데 Portable에 최적화 되지 않은 것 같다. 사용자 설정파일인 SciTEUser.Properties 파일의 저장 위치가 서로 다르다.
AutoIt3와 함께 배포되는 SciTE는 시스템 환경설정에 따라 사용자 설정파일 위치가 달라진다. 하지만 SciTE4AutoIt3 portable 버전 포함된 SciTE는 실행파일고 동일한 위치에 사용자 설정 파일이 저장된다.

SciTE 설정은 기존 윈도우 프로그램과는 사믓 다른 구조이다. 대화상자에 사용가능한 옵션을 보여주지 않고 설정 파일에 직접 수정해야 한다. 게다가 설정 파일이 여러가지 존재한다. Global, Local, User, Directory 등이 있다. 이 중에서 User 설정을 변경하여 사용하면 된다. SciTE 메뉴에서 Options -> Open User Optioins File 을 실행하면 사용자 설정 파일이 열리는데 처음에는 아무 내용도 없다. 필요한 사항을 채워 넣어야 하는데 Open Global Options File을 열어서 필요한 내용을 복사하여 사용하면 된다.

먼저 자주 사용되는 몇 가지를 수정해 보았다.
참고로 환경 설정에도 블럭 개념이 있는데 이는 Python과 유사하게 들여쓰기로 구분한다.

우선 폰트 설정이다.
아래 내용은 윈도우에서 적용 될 설정 내용 이다. 얼마적 적용한 D2Coding 으로 바꾸어 놓았다.
if PLAT_WIN
    font.base=font:D2Coding,size:10,$(font.override)
    font.small=font:D2Coding,size:8,$(font.override)
    font.comment=font:D2Coding,size:9,$(font.override)
    font.code.comment.box=$(font.comment),$(font.override)
    font.code.comment.line=$(font.comment),$(font.override)
    font.code.comment.doc=$(font.comment),$(font.override)
    font.code.comment.nested=$(font.comment),$(font.override)
    font.text=font:D2Coding,size:11,$(font.override)
    font.text.comment=font:D2Coding,size:9,$(font.override)
    font.embedded.base=font:D2Coding,size:9,$(font.override)
    font.embedded.comment=font:D2Coding,size:8,$(font.override)
    font.vbs=font:D2Coding,size:10,$(font.override)
    font.monospace=font:D2Coding,size:11
    font.override=$(font.monospace)

위 내용을 붙여넣고 저장하면 바로 적용된다.

그리고 SciTE이 이전 작업 세션을 기억하고 있다가 프로그램을 시작할 때 세션을 복구 하는데 이도 옵션으로 조정할 수 있다.

save.session=0

으로 설정하면 항상 새롭게 SciTE가 실행 된다.

무수히 많은 옵션이 있는데 다른 옵션은 차차 익혀 나가야 겠다

Original Post : http://neodreamer-dev.tistory.com/763

2015/09/22

AutoIt3 개발 환경 만들기

이전 글을 통해 AutoIt3 를 설치(?)해 보았다.
2015/09/22 - [Dev Story] - Hello AutoIt3

AutoIt 과 SciTE4AutoIt3 를 설치하고 난 후 AutoIt3 경로의 SciTE 폴더의 SciTE.exe 를 실행하면 스크립트를 작성할 수 있고 단축키로 실행할 수 있다.



AutoIt 을 위해 최적화를 해 놓은 편집기 답게 많은 기능을 제공하고 있다.



SublimeText
메뉴바에서 Preference 메뉴의 Package Control을 선택하고 install package를 실행하고 AutoItScript package를 설치한다.





패키지를 설치하면 SublimeText 의  Build System에 AutoIt 이 등록이 된다.



다음으로 AutoIt3 의 경로를 설정해 주어야 한다. 설정을 하기 위해 아래 메뉴를 선택하여 AutoIt3 설정 파일을 연다.
Preferences > Package Settings > AutoIt > AutoIt Settings - Default
설정 항목은 4개인데 위쪽 3개 항목에 대한 경로를 설정하면 된다.
{
"AutoItExePath": "D:\\Dev\\AutoIt3\\AutoIt3.exe",
"AutoItCompilerPath": "D:\\Dev\\AutoIt3\\Aut2Exe\\Aut2exe.exe",
"TidyExePath": "D:\\Dev\\AutoIt3\\SciTE\\Tidy\\Tidy.exe",
"IncludeHelperAU3Path": "{PACKAGE_PATH}\\AutoItScript\\Include_Helper.au3"
}

이제 설정은 마쳤고 스크립트를 작성하고 실행하면 된다.
아래 화면은 예제 스크립트를 실행한 화면이다.



Notepad++
Notepad++은 추가로 설치해줄 것은 없다. 기본적으로 AutoIt 파일에 대한 Syntax Highlight를 지원해 준다.



단지 실행 시 AutoIt3 경로를 포함한 명령행을 작성해주면 된다.
F6 키로 Execute 대화상자를 호출하고 명령문을 입력한 뒤 Save... 를 선택하여 다른이름으로 저장하고 다음에는 해당 이름을 선택하여 실행하면 된다.



아래 화면은 Notepad++에서 .au3 파일을 실행한 화면이다.



Original Post : http://neodreamer-dev.tistory.com/762

Hello AutoIt3

AutoIt 을 알게 된 것은 꽤 오래전 이지만 쓸 기회가 많지 않아서 잊고 있다가 또 쓸 기회가 생겨 다시 살펴 보았다.
나중에 또 쓸 기회가 있을 수 있어 기록으로 내용을 간단한게 남긴다.


우선 AutoIt(https://www.autoitscript.com/site/autoit/) 은 베이직 스크립트와 유사한 문법으로 윈도우에서 실행되는 스크립트이며 작성된 스크립트를 실행파일로 변환도 가능하다.


AutoIt 는 별도의 스크립트 작성기나 인터렉트브 환경을 지원하지 않고 있으며 SciTE 편집기를 AutIt 환경에 맞게 설정한 것을 제공한다.


홈페이지를 방문하여 아래 두 파일만 다운로드하면 사용할 수 있다.

AutoIt-v3.zip

SciTE4AutoIt3_Portable.zip


AutoIt-v3.zip 파일만 받으면 기본적인 실행및 컴파일이 가능하며 제공하는 편집기를 사용하려면 SciTE4AutoIt3_Portable.zip 파일을 받으면 된다.
두 파일을 한 곳에 압축해제하고 SciTE는 AutoIt-v3를 압축해제한 후 해제한 폴더의 SciTE 폴더에 SciTE4AutoIt3_Portable.zip 파일을 압축 해제 해 놓고 AutoIt-v3를 압축 해제한 경로를 시스템 Path에 등록하면 기본 환경 설정이 된 것이다.


메모장이든 기본 편집기는 스크립트를 아래와 같이 작성하고 HelloAutoIt3.au3 로 저장한다.

#comments-start
The first AutoIt Script
#comments-end

#cs
Author: NeoDreamer
Write : 2015/09/22
#ce

ConsoleWrite("Hello AutoIt3") ; Write string to Console
ConsoleWrite(@Crlf)



아래 명령을 실행하면 위의 스크립트가 실행 된다.
AutoIt3 HelloAutoIt3.au3 | more


ConsoleWrite가 있는 경우 도스창에서 실행시 "| more" 옵션을 주어야 결과 화면이 보이는데 이유는 확인해 봐야겠다.


Original Post : http://neodreamer-dev.tistory.com/761

2015/09/15

프로그래머를 위한 한글 폰트 D2Coding

이전에도 한글 고정폭 폰트는 많았다. 하지만 프로그래머가 사용하기에는 부족한 점이 많았다. 유사한 문자들의 구분이 쉽게 되어야만 프로그램 작성시 오류를 줄일 수 있고 소스의 가독성도 올라간다.
그래서 대부분의 프로그래머는 고정폭 폰트 중에서 유사한 문자를 구분하기 쉽게 디자인한 폰트를 사용한다.
물론 프로그래머의 개성에따라 구분되어야 하는 문자는 다르다.
기존 고정폭 폰트중 한글을 포함한 프로그래머가 사용할 수 있는 폰트는 네이버에서 베포하는 나눔고딕코딩이 전부였다. 일부 한글 폰트와 영문 폰트를 조합하여 새로운 폰트를 만드는 경우가 있었는데 이는 매우 불안정해 보였다. 한글과 영문폰트의 폭이 맞지 않거나 인쇄가 되지 않는 문제가 있었다.


얼마전 Open Project 인 D2Coding 폰트가 공개되었다.
http://dev.naver.com/projects/d2coding/


아래 화면은 D2Coding 폰트와 나눔고딕코딩 폰트를 비교한 화면이다. D2Coding은 나눔바른고딕을 나눔고딕코딩은 나눔고딕을 기반으로 하고 있다. 두 폰트의 차이점은 여러가지가 있겠지만 그중 자간과 행간이 큰 차이점으로 보인다.
나눔고딕코딩은 오밀조밀한 구성으로 혼란스럽고 가독성이 많이 떨어지는 것 같았고 D2Coding은 그 보다는 편해 보였다. 물론 편집기마다 조금 다를 수 있다. 아래 화면은 Notepad++에서 갈무리를 한 화면이다.





그간 유일하다시피한 한글을 포함한 프로그래머 글꼴인 나눔고딕코딩을 사용하지 않은 이유가 오밀조밀한 구성으로 가독성이 많이 떨어지고 눈이 피곤해지는 것 같은 이유였는데 D2Coding에서는 많이 개선된것 같아 앞으로 사용하면서 장단점을 파악해 봐야 겠다.


한글을 포함한 고정폭 폰트의 장점이라하면 영숫자 사이에 한글을 포함하여도 폰트 폭의 변화가 없어 각 컬럼에 맞게 코딩을 할 수 있다는 것이다. 기존 영문 전용 폰트의 경우 한글을 포함하게되면 한글 폰트와 영문 폰트가 폭이 달라서 문장의 길이가 달라져 보기 싫었다. 게다가 시스템마다 영문폰트에 연결된 한글 폰트가 달라 다르게 표시 될 수도 있는 문제가 있다.
아래 이미지는 몇몇 영문 폰트를 갈무리한 것이다.










Fixed System을 제외하고는 한글 폰트를 포함하면 문장 길이가 컬럼수와 다르게 출력이 된다. 물론 코드에 2바이트 문자를 사용하지 않는 경우에는 이러한 현상이 문제가 되지 않는다.

하지만 주석이든 뭐든 한글이 사용하게 되면 컬럼이 맞지 않는 경우에는 좀 거슬리게 된다.


Original Post : http://neodreamer-dev.tistory.com/760

2015/09/14

Windows 10 네트워크 접속 암호 관리

Windows 10 에서 네트워크 접속 암호를 관리하는 방법이다.
아마도 Windows 8.x 버전에서도 동일 할 것으로 생각되지만 실제 테스트 해보지는 않았다.

우선 Windows 10의 시작메뉴에서 마우스 우측 버튼을 눌러 보여지는 메뉴에서 제어판을 호출 한다.


제어판 메뉴 중에서 User Account 를 선택 한다.



User Account 대화상자의 좌측 메뉴에서 Manage your credentials 을 선택하고 우측 내용 중에서 Windows Credentials 을 선택한다.



Windows Credentials 항목에 추가 또는 변경 작업을 하면 된다.








2015/09/07

PyCharm 에러: Fatal Python error: Py_Initialize: can't initialize sys standard streams

pycharm community 버전을 사용하고 있는데 pycharm community와 python을 모두 수동으로 설치(압축 해제)하여 사용하고 있다.
pycharm 에 python interpreter를 설정하고 아래와 같은 단순 테스트 코드를 수행하였는데 에러를 내 토해냈다.

Code
__author__ = 'NeoDreamer'
print(2 + 3)
Result
E:\Dev\python-3.4.3\python.exe E:/DevWork/Python/pycharm/test/test.py
Fatal Python error: Py_Initialize: can't initialize sys standard streams
LookupError: unknown encoding: x-windows-949
Process finished with exit code 3
Dos 명령창에서 아래 명령을 실행하면 문제 없이 실행이 되었다.

E:\Dev\python-3.4.3\python.exe E:/DevWork/Python/pycharm/test/test.py

해결하기 위해 인터넷에서 찾아보니 StackOverflow에 이에대한 해결책(http://goo.gl/xaGb0T)이 나와 있었다.
해결 방법은 편집기의 파일 설정과 프로젝트 설정의 인코딩 방식을 "UTF-8"로 설정하는 것이다.
설정 대화상자는 아래를 참고하여 볼 수 있다.
File > Settings... > Editor > File Encodings
IDE Encoding
Project Encoding
Default encoding for properties files


직접 확인한 결과 pycharm community 버전 4.5.4에서 Encoding 설정을 하는 항목이 3개 있었고 이를 UTF-8로 변경시 정상적으로 실행이 되었다.
E:\Dev\python-3.4.3\python.exe E:/DevWork/Python/pycharm/test/test.py
6
Process finished with exit code 0

위 방법은 현재 Project에만 해당하는 것이고 이후 생성되는 프로젝트의 기본 속성을 변경하고자 하는 경우 File 메유에서 Default Settings...에서 변경을 해 주면 된다.


Original Post : http://neodreamer-dev.tistory.com/758

2015/08/27

Chrome 한글 이름 파일명 다운로드 할 때 깨지는 문제

Chrome 의 언어 설정이 한글일 경우는 문제가 없어 보이는데 최근 Windows 10을 테스트 하면서 Chrome의 실행 문제로 Canary Build를 사용하는데 이 녀석은 설치시 영문으로 설치 된다. 사용중 한글 이름으로 된 파일을 다운로드 받을 경우 이름이 깨지는 것을 경험하고 이 문제의 해결 방법을 찾아 보니 인코딩 설정을 변경해 주면 해결 된다고 한다.


아래 설정 위치에서 인코딩을 유니코드로 설정해 주면 해결된다.
Settings -> Advanced Settings -> Web content -> Customize fonts... -> Encoding
(한글 UI: 설정 -> 고급 설정 -> 웹 콘텐츠 -> 글꼴 맞춤설정 -> 인코딩


Original Post : http://neodreamer-dev.tistory.com/757

2015/08/20

[Sublime Text 3] 다시 실행시 이전 문서 열지 않도록 설정하기

설정에 대한 일반적인 정보는 아래 링크의 이전 글을 참고 하면 된다.
2015/08/20 - [Com. Story/Tips] - [Sublime Text 3] 폰트 변경하기


Sublime Text를 다시 실행하면 이전에 열어두었던 문서가 다시 열린다. 상황에 따라 편리한 기능이기는 하나 내게는 필요 없는 기능이라 이를 해제하는 방법을 찾아 보았다.
아래 두 항목만 false로 설정을 하면 이전의 문서를 열지 않고 Sublime Text가 실행이 된다.
"remember_open_files": false,
"hot_exit": false
Original Post : http://neodreamer-dev.tistory.com/756

[Sublime Text 3] 폰트 변경하기

Sublime Text 는 기존의 일반적인 편집기에서 제공하는 환경 설정 대화상자를 제공하지 않고 JSON 형태의 설정 파일을 직접 편집해서 설정을 변경해야 한다.

Preferences의 System - Defaults 메뉴를 선택하면 아래와 같은 JSON 형해의 설정 파일을 편집창에서 볼 수 있다.


설정을 변경하기 위해 이 파일을 직접 변경할 필요는 없다. Preferences의 System - User 메뉴를 선택하면 아무 것도 없는 빈 설정 파일이 열리는데 이 파일에 추가로 필요한 사항을 작성하면 이 파일에 설정한 사항이 우선 적용 된다.

"font_face": "Monaco",
"font_size": 9,
설정은 저장하는 즉시 적용이 된다.


Original Post : http://neodreamer-dev.tistory.com/755

2015/08/15

[Sublime Text 3] 한글을 포함한 파일 읽기 문제

Sublime Text 3는 기본적으로 UTF-8 형식으로 파일을 읽어들인다 한다. 그래서인지 한글을 포함하는 문서를 읽어들이면 정상적으로 읽어들이지 못하고 아래처럼 깨져 보인다.


이를 해결하려면 읽어 들이고자하는 문서를 변환해서 불러 들여야 하는데 이러한 변환을 자동으로 해주는 확장 프로그램이 있다. 우선 Package Control 에서 Install Package 를 실행한다.



메뉴에서 Package Control이 보이지 않으면 Package Control이 설치되지 않은 것으로 아래 글을 참고하여 Package Control을 설치한다.
2015/08/15 - [Com. Story/Tips] - Sublime Text 3 에 Package Control 설치하기


install package 를 실행하여 "ConvertToUTF8" 를 찾아 설치한다.




설치를 하면 아래와 같이 "ConvertToUTF8" package에 대한 안내글이 보여진다.



이제 한글을 포함한 문서를 열어보면 정상적으로 보여지는 것을 확인할 수 있다.



그리고 상태 표시줄에 원래 파일의 인코딩을 확인할 수 있으며 이 파일을 저장할 때 원래 인코딩으로 변환하여 저장 된다.

Original Post : http://neodreamer-dev.tistory.com/754

[Sublime Text 3] Package Control 설치하기

Sublime Text 3 최신 개발자 버전을 설치하면 아래 메뉴 이미지처럼 Package Control이 설치되지 않는다.



인터넷 검색을 통해 알게된 Package Control 설치 방법은 두 가지 방법이 있다.

https://packagecontrol.io/installation

첫 번째 방법은 Console 입력창(Ctrl + `, View - Show Console)에 Python Code를 입력하는 방법이다.
import urllib.request,os,hashlib; h = 'eb2297e1a458f27d836c04bb0cbaf282' + 'd0e7a3098092775ccb37ca9d6b2e4b7d'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

Dependency 에러를 뿜기는 하지만 메뉴에 Package Control을 보여진다.



두 번째 방법은 아래 경로에서 Package Control.sublime-package 파일을 다운받아 Sublime Text 3가 설치되어 있는 경로의 package 폴더에 복사하고 재시작 하면 된다.

https://packagecontrol.io/Package Control.sublime-package


Original Post : http://neodreamer-dev.tistory.com/753

2015/07/30

Visual Studio 2015 Community 버전 ISO로 내려받기

Windows 10 공개에 맞추어 함께 공개된 개발툴 Visual Studio 2015.
2015 버전도 개인이 무료로 사용할 수 있는 버전인 Community Edition을 제공한다.
아래 페이지를 방문하면 Visual Studio Community 2015 를 내려받을 수 있다.
https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx


"Download Community Free" 버튼은 단순 실행 파일만 다운로드 하는 것으로 이 실행파일을 실행하면 설치에 필요한 파일들을 다시 인터넷으로 내려받아 설치하는 기능을 제공 한다. 실행 파일은 빠르게 다운로드 받을 수 있지만 설치는 필요한 파일을 계속 내려받아야 하기때문에 다소 느리다.


좀더 아래쪽에 보면 "Visual Studio downloads" 섹션에서 "Visual Studio 2015"를 선택하면 각각의 Edition을 선택할 수 있는데 기본적으로 Community Edition이 선택된다. 선택 후 우측에 보면 Language와 Format을 선택할 수 있는데 Format을 ISO로 선택을 하면 설치에 필요한 모든 것을 포함하는 ISO 파일을 다운 받을 수 있다.


그리고 오늘(2015/07/30)이후부터는 Windows 10 용 Application을 개발할 수 있는 패키지가 포함되어 있다

Original Post : http://neodreamer-dev.tistory.com/752

2015/07/17

Visual Studio 2012 단축키

Ctrl + Shift + B: Project Build
Ctrl + Alt + L: Solution Explorer 로 포커스 이동


Alt + 방향키(↑,↓): 커서를 함수 단위로 이동
Alt + Shift + 방향키(←,↑,↓,→): Column 단위 선택
Alt + Drag: 컬럼 단위 선택
Alt + F8: 선택 영역 들여쓰기 조정
Ctrl + }: 쌍을 이루는 중괄호로 커서 이동
Ctrl + Shift + }: 쌍을 이루는 줄괄호의 내용을 선택
Ctrl + Shift + S: 모든 파일 저장
Ctrl + K, C: 선택된 줄을 주석 처리 함
Ctrl + K, U: 주석 처리된 줄의 주석 해제
Ctrl + K, D: 코드 들여쓰기 정렬
Ctrl + Comman(,): Navigate To 대화상자 호출
Ctrl + U: 선택 영역 소문자로 바꿈
Ctrl + Shift + U: 선택 영역 대문자로 바꿈 
Ctrl + Delete: 현재 커서 위치에서 오른쪽에 있는 문자를 의미단어 단위로 삭제
Ctrl + Enter: 현재 커서가 있는 줄 위에 빈 줄 삽입
Ctrl + Shift + Enter: 현재 커서가 있는 줄 아래에 빈 줄 삽입
Ctrl + L: 현재 라인 잘라내기
Ctrl + Shift + L: 현재 라인 삭제
Shift + End: 현재 줄 커서 위치부터 줄 마지막까지 선택
Shift + Home: 현재 줄 커서 위치부터 줄 처음까지 선

Original Post : http://neodreamer-dev.tistory.com/751

2015/07/15

Windows 10의 Quick Access 목록 삭제하기

Windows 10을 사용하면 이전에 접근한 파일이나 폴더를 탐색기의 Quick Access 에서 쉽게 확인할 수 있다.
개인 PC라면 유용하겠지만 공공PC나 사무용 PC의 경우 여러가지로 문제가 될 수 있다.


이 목록을 쉽게 삭제하고 저장하지 않게 설정하는 방법이 있는데 이전에는 Taskbar의 Properties 에서 지원했지만 지금의 버전(10166)에서는 Quick Access의 Option 메뉴에서 지원 한다.




Options 대화상자에 보면 Privacy 항몸에서 삭제와 보이지 않도록 하는 설정이 있다.


Original Post : http://neodreamer-dev.tistory.com/750

2015/06/17

[HALCON] Win32 함수 충돌

HALCON 내부에서 함수 사용으로 아래 함수를 정의를 해제(Undef) 하였다.


#if defined(_WIN32)
#undef FindText
#undef CreateMutex
#undef CreateEvent
#undef DeleteFile
#endif


위 함수를 사용하고자 하는 경우 Ansi 인지 Unicode 인지 명시하여 사용하면 컴파일 에러를 피할 수 있다.
예) DeleteFileA, DeleteFileW


Original Post : http://neodreamer-dev.tistory.com/749

2015/06/05

OpenCV contrib 빌드하기

2015-06-04 일자로 OpenCV 3.0이 공개가 되었고 그 내용을 보다 관심을 끄는 기능 있었다.


Big thanks to Google who funded several successive GSoC programs and let OpenCV in. The results of many successful GSoC 2013 and 2014 projects have been integrated in opencv 3.0 and opencv_contrib (earlier results are also available in OpenCV 2.4.x). We can name:
  • text detection
  • many computational photography algorithms (HDR, inpainting, edge-aware filters, superpixels, …)
  • tracking and optical flow algorithms
  • new features, including line descriptors, KAZE/AKAZE
  • general use optimization (hill climbing, linear programming)
  • greatly improved Python support, including Python 3.0 support, many new tutorials & samples on how to use OpenCV with Python.
  • 2d shape matching module and 3d surface matching module
  • RGB-D module
  • VTK-based 3D visualization module
    etc.
opencv_contrib 중에서 2d/3d matching 이다. opencv_contrib 를 빌드 해 보기로 했다.
빌드를 위해서는 우선 opencv_contrib를 다운 받아야 하는데 아래 경로에서 3.0.0 버전을 다운 받았다.


https://github.com/Itseez/opencv_contrib/releases


위 경로에서 받은 파일을 OpenCV 3.0 경로에 풀어 놓고 CMake를 실행한다.
옵션 중에서 OPENCV_EXTRA_MODULES_PATH 항목에 위에서 압축을 풀어 놓은 곳의 modules 폴더를 지정한다.


Extra Module 경로를 지정하고 configure를 하면 추가된 모듈이 보이고 각각의 모듈에 대한 빌드 여부를 설정할 수 있다


OpenCV 2.9 버전부터인가 제공하던 world 버전도 보이는데 VTK와 함께 빌드에 문제가 있을 것으로 보여 이 모듈만 선택을 하지 않았다. 그리고 다시 configure 하니 정상적으로 구성 되었고 generate 를 선택하여 빌드에 필요한 솔루션을 생성하였다.

Visual Studio 2013 버전으로 생성된 OpenCV.sln 파일을 열고 빌드하였다. 그런데 뜻 밖의 에러에 마주쳤다.



OpenMP 의 for 루프에서 unsigned int를 지원하지 않는 문제였다. Visual Studio 2013 버전은 OpenMP 2.0 을 지원하고 있으며 OpenMP 2.0 버전은 unsigned int를 지원하지 않는다. unsigned int 는 OpenMP 3.0 버전에서 지원한다고 한다. 이것때문에 OpenMP를 포기할 수는 없어 해당 부분 두 곳만 OpenMP를 제거하였다.



두 곳의 OpenMP를 제거하고 빌드하니 아무런 문제 없이 빌드가 되었다.
빌드를 마쳤으니 테스트를 해 봐야겠다.

Original Post : http://neodreamer-dev.tistory.com/748

2015/06/04

OpenCV 3.0 Release

드디어 OpenCV 3.0 버전이 정식 릴리스 되었다.


OpenCV 3.0 Release


opencv_contrib 에 포함된 새로운 기능들을 어서 빨리 테스트 해 봐야겠다. 우선 VTK 모듈을 얹은 것 부터 빌드 해 봐야겠다

Original Post : http://neodreamer-dev.tistory.com/747

2015/05/27

OpenCV 드로잉 좌표 한계

OpenCV 2.9 버전을 64비트로 빌드하여 사용하는데 큰 이미지에 도형을 그리는 과정에서 이상한 현상을 보았다.


좌표값이 32768(32K)를 넘어가는 경우 도형이 그려지지 않는 문제가 있었다.


32768 값을 넘어가면 0으로 바뀌어 버려 이 지점을 포함하는 다각형을 그리는 경우 엉뚱한 도형이 그려졌다.


내부적인 좌표 한계인지는 좀 더 알아봐야 겠지만 문제의 처리가 우선이라 ROI를 지정하여 그리는 방법으로 우회를 하였다

Original Post : http://neodreamer-dev.tistory.com/746

2015/05/26

[MFC] VTK Hello World

천천히 VTK 를 공부하고 있다.


지난 번 라이브러리를 빌드 한 후 VTK C++ Tutorial을 하나하나씩 해보기로 하였다. 그 첫번째로 Hello World 이다.
Tutorial에서는 C++ 코드와 CMake를 이용한 빌드를 소개하고 있다. 이를 이전에 빌드한 vtkGUISupportMFC 를 이용하여 대화상자에 출력하도록 해 보았다.



m_pvtkMFCWindow = new vtkMFCWindow(this);
m_pvtkMFCWindow->GetRenderWindow()->AddRenderer(m_pvtkRenderer);
m_pvtkRenderer->SetBackground(0.0, 0.0, 0.5);


// This creates a polygonal cylinder model with eight circumferential facets.
//
m_pCylinder = vtkCylinderSource::New();
m_pCylinder->SetResolution(8);

// The mapper is responsible for pushing the geometry into the graphics
// library. It may also do color mapping, if scalars or other attributes
// are defined.
//
m_pCylinderMapper = vtkPolyDataMapper::New();
m_pCylinderMapper->SetInputConnection(m_pCylinder->GetOutputPort());

// The actor is a grouping mechanism: besides the geometry (mapper), it
// also has a property, transformation matrix, and/or texture map.
// Here we set its color and rotate it -22.5 degrees.
m_pCylinderActor = vtkActor::New();
m_pCylinderActor->SetMapper(m_pCylinderMapper);
m_pCylinderActor->GetProperty()->SetColor(1.0000, 0.3882, 0.2784);
m_pCylinderActor->RotateX(30.0);
m_pCylinderActor->RotateY(-45.0);

// Render on MFCWindow
// Add the actors to the renderer, set the background and size
//
m_pvtkRenderer->AddActor(m_pCylinderActor);
m_pvtkRenderer->SetBackground(0.1, 0.2, 0.4);

// We'll zoom in a little by accessing the camera and invoking a "Zoom"
// method on it.
m_pvtkRenderer->ResetCamera();
m_pvtkRenderer->GetActiveCamera()->Zoom(1.5);



Original Post : http://neodreamer-dev.tistory.com/745

2015/05/23

CListCtrl 에서 Check 상태 변화 확인 하기

CListCtrl에서 Check Box를 보이게 한 후 상태 변화를 확인하기 위해 LVN_ITEMCHANGED 의 메시지 핸들러의 파라메터를 확인해 보니 Item의 Uncheck와 check 가 각각 4096(0x1000) 과 8192(0x2000) 값으로 전달 되었다.


void CDlgTestDlg::OnLvnItemchangedList2(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);

if(pNMLV->uChanged & LVIF_STATE)
{
if( (pNMLV->uOldState & 0x1000) && (pNMLV->uNewState & 0x2000) )
{
TRACE("Checked Item : %d\n", pNMLV->iItem);
}
else if( (pNMLV->uOldState & 0x2000) && (pNMLV->uNewState & 0x1000) )
{
TRACE("Unchecked Item : %d\n", pNMLV->iItem);
}
}

*pResult = 0;
}


Original Post : http://neodreamer-dev.tistory.com/744