9/02/2011

Simple Image Processing Tool / C++ Source(MFC, OpenCV) / 간단한 영상처리 툴

Created Date : 2008.10
Language : C++(MFC)
Tool : Visual C++ 6.0
Library & Utilized : OpenCV 1.0
Reference :  Image Processing Book, Learning OpenCV
etc. : -



When I teach Image Processing to undergraduate students,  this program is made for practicing programming.
This code includes simple image processing method.

ex) Image adding, reverse, Lookup Table making, Gamma adjusting, Image Zoom in/out, Rotation, Morphology, Histogram Drawing, Stretching, Laplacian, sovel, RGB, HSI, YCbCr..

The code may be useful to beginner studying image processing , MFC and OpenCV.


<source code>



If you have good idea or advanced opinion, please reply me. Thank you

(Please understand my bad english ability. If you point out my mistake, I would correct pleasurably. Thank you!!)---------------------------------------------------------------------------



간단한 영상 처리 소스
RAW 를 오픈하여
2영상 더하기, 역상계산, 룩업데이블 생성, 감마 조절
영상 축소, 영상확대, 영상 회전
모폴로지, 히스트그램 그리기, 스트레칭, 평활화
라플라시안, 평화화 소벨
을 처리함
또한 BMP 파일을 오픈하여 RGB, HSI, Ycbcr로 채널을 분리한다.
그리고 OpenCV를 이용하여
영상 밝기 조절, 크기 조절, 회전, 이진화, 팽창, 수축, 필터를 적용해 본다.

압축 파일에 소스, 이미지, 간략한 설명 문서가 있음



<source code>



좋은 의견이나 답변 남겨 주세요.

SICK LMS sensor communication interface / C++ source code (MFC) / SICK 레이져 센서 커뮤니케이션 소스


Created Date : 2010.6
Language : C++(MFC)
Tool : Visual C++ 6.0
Library & Utilized : -
Reference :  Sensor Manual, Internet Reference
etc. : SICK sensor, serial cable, power cable ... some equips about SICK









This program is SICK LMS communication application.
I made this code when I prepare 'Unmanned vehicle competition - hosted Hyundai-Kia'.
Communication method is Serial.
This zip file includes manual of SICK and useful site about LMS sensor.





reference is here http://study.marearts.com/2011/09/sick-lms-sensor-inteface-c-mfc.html

source code is here https://github.com/MareArts/LMS-Laser-sensor




--------------------------------------------------------------------------------




SICK LMS센서와 Serial 통신을 통하여 포트를 열고,
LMS센서의 스캔 데이터를 받아서 화면에 그려주는 소스.
LMS의 보오드, 스캔 레졸루션, 단위를 설정할 수 있다.
마우스 휠을 통하여 그려주는 화면을 축소,확대 할 수 있다.
(SICK 메뉴얼 포함, LMS설명 관련 사이트 캡쳐 파일 포함)


Stereo Feature Tracking for visual odometry (document)




Created Date : 2011.2
Reference :
Robust and efficient stereo feature tracking for visual odometry
stereo odometry - a review of approaches
multiple view geometry




How to get 3D point when we know feature image points of right and left camera?
How to propagate error? if we get the 3D point that calculated including stereo distance error.
If we know translated two 3D point, How to optimize error of R, T?
This document introduces about these problems.


- contents -

① Stereo Image Point :
Left Image Image
Camera Parameters :
Focal Length f, Principal point , Baseline B
Homogeneous Point
,
Non-Homogeneous Coordinate
-(stereo odometry A Review of Approaches)
ing in Stereo Navigation L. Matthies
Noise Propagation
X point Gaussian
Mean , Covariance
X Point(3D) mean, covariance ?
f is nonlinear function of a random vector with mean , covariance
② 3D point Covariance
~ Multiple view Geometry Nonlinear Error Forward propagation
③ Estimation of motion parameters
3D points ,
X:before motion, i-th:interest point, Y:after motion
Unique solution
(X, Y will be disturbed by same amount of noise)
Mean square error
Becomes minimal?
Several solutions.
- A solution based a singular value decomposition.
- A solution based on Essential Matrix.
- A maximum likelihood solution.
④ Maximum likelihood solution


<Doc> <PDF>


If you have good idea or advanced opinion, please reply me. Thank you
(Please understand my bad english ability. If you point out my mistake, I would correct pleasurably. Thank you!!)

----------------------------------------------------------------------------

스테레오 카메라에서 특정 점에 대한 왼쪽 영상에서 x,y점 오른쪽 영상에서 x,y점 을 알때 3D point를 어떻게 구할까?
3D을 구했을때 스테레오 영상에서 포함된 에러가 3D point에 에러가 어떻게 전파될까?
이동된 두 3D point가 일을때 어떻게 하면 에러를 최소화하는 R, T를 구할수 있을까?
이런 질문들에 대한 내용에 대한 솔루션을 다룬다.


<Doc> <PDF>


좋은 의견이나 답변 남겨 주세요.

Kalman Filter hand note / 칼만 필터 손으로 정리한 노트




Created Date : 2008.6
Reference : Probabilistic Robotics


When I studied 'Probabilistic Robotics Book', I organized Kalman filter theory by hand.
This document may be poor, because that time, understanding about kalman is insufficient.
You can download zip file. <here>


If you have good idea or advanced opinion, please reply me. Thank you
(Please understand my bad english ability. If you point out my mistake, I would correct pleasurably. Thank you!!)

----------------------------------------------------

Probabilistic Robotics (sebastian thrun, wolfram burgard, dieter fox)의 저서에 나오는
칼만 필터에 대하여 손으로 정리하였습니다.


베이즈 필터 정리
-베이즈 필터 알고리즘 유도
칼만 필터 조건
-칼만 필터의 선형 조건, 가우시안 조건 설명
칼만 필터 알고리즘
-칼만 필터 동작 원리 그림과 수식으로 표현
칼만 필터 수학적 증명 6page
- 예측, 입력, 업데이트 파트 정리



이 문서를 만들 당시 칼만필터에 대한 이해가 부족하여서, 좋은 자료가 될지 모르겠습니다. ^^
전체 파일은 여기서 다운 받을 수 있습니다. <here>


좋은 의견이나 답변 남겨 주세요.












8/30/2011

Make Fibonacci sequence function. / 피보나치 수열 함수 만들기

Below condition is Fibonacci sequence.


Fibonacci sequence start from 0, 1 and then next number is sum of previous two Fibonacci value.
ex) 011235813213455891442333776109871597, 2584, 4181, 6765, 10946...

Make Fibonacci function~
ex) F(0) = 0, F(1)=1, F(7)=13

----------------------------------------------------

피보나치 수는 0과 1로 시작하며, 다음 피보나치 수는 바로 앞의 두 피보나치 수의 합이 된다. 
ex) 011235813213455891442333776109871597, 2584, 4181, 6765, 10946...
피보나치 함수를 만들어라
ex) F(0) = 0, F(1)=1, F(7)=13

OpenCV Function Test - (cvCanny, cvGoodFeaturesToTrack) / C++ source

Created Date : 2008.11
Language : C++
Tool : Visual C++ 6.0
Library & Utilized : OpenCV 1.0
Reference :  Learning OpenCV Book
etc. : -




This code is to test OpenCV functions those are cvCanny, cvGoodFeaturesToTrack.
It is simple and easy. But the method of function use is easy to forget in long time past. And It is useful to OpenCV Beginner.

You can download source <here>

If you have good idea or advanced opinion, please reply me. Thank you
(Please understand my bad english ability. If you point out my mistake, I would correct pleasurably. Thank you!!)------------------------------------------------------------

OpenCV 에 있는 cvCanny, cvGoodFeaturesToTrack 함수를 사용한 소스입니다.
결과는 위 그림과 같습니다.
이 함수를 사용하시는 분 참고하시면 빠르게 적용할 수 있을거라 생각합니다. <here>




좋은 의견 어떤 글이든 답변 남겨주세요

감사합니다.


8/29/2011

Hough Transform (Line, Circle) / C++ source (OpenCV) / 허프변환(선, 원)


Created Date : 2007.7
Language : C++
Tool : Visual C++ 6.0
Library & Utilized : OpenCV 1.0(for image saving)
Reference :  Hough Transform reference
etc. : -






This is Hough Transform program.
We can progress two type Hough Transform. One is Line Hough Transform, Second is Circle Hough Transform.
After processing, Hough Transform result, Edge Image and Parameter Space(txt) files save in your directory.

You can download source code <here>.

If you have good idea or advanced opinion, please reply me. Thank you
(Please understand my bad english ability. If you point out my mistake, I would correct pleasurably. Thank you!!)
-------------------------------------------------------------------------------

▣ 허프변환 프로그램 결과
<실험 1>
1. 입력 데이터
2. 에지 영상
3. Line 검출 결과
4. Parameter Space voting 영상

▣ 소스 코드 설명
1. Line 검출
①voting 부분
theta를 0~180까지 증가시키면서 rho를 구하고 그 값을 [theta][rho]의 2차원 배열에 Voting한다.

②Sorting 부분
voting된 Parameter를 정렬한다. 정렬은 STL을 사용함.

③Line 그리는 부분
정렬된 theta와 rho값을 이용하여 직선의 방정식의 기울기와 절편을 구하고 OpenCV에 Line Draw함수를 이용하여 라인을 그린다. 그려진 라인은 OpenCV의 IplImage에 저장된다.
라인을 그릴 때는 voting이 가장 많이 된 것의 선색을 255, 가장 voting이 안된 것의 선 색을 0으로, Voting된 것의 정도를 색으로 나타내었다.

2. Circle 검출
①voting 부분
반지름을 <10>에서 <이미지 대각방향의 픽셀 길이 빼기 10>까지 증가시키면서 theta를 0~360까지 증가시키며, 원의 중심 위치 Cx, Cy에 대하여 voting을 한다. voting된 결과는 를 담을 수 있는 Vector에 저장된다.

②Sorting 부분
의 정보를 갖고 있는 Vector에서 Voring 값으로 정렬을 한다.

③Circle 그리는 부분
정렬된 원중에서 상위 1%만 드로잉한다.
드로잉할 때는 라인을 그릴때와 마찬가지로 제일 많이 voting된 것을 255색, 제일 적게 voting된것을 0색으로 그려서 voting정도를 표시한다.

▣ 인터페이스 설명
실행 파일을 실행하여 파일명을 입력하고, Line을 검출하려면 1을 입력 Circle을 검출하려면 2를 입력한다.
검출이 끝나면 실행 시간이 나온다.


전체 소소는 여기서 다운 받을 수 있습니다. <here>

좋은 의견 어떤 글이든 답변 남겨주세요
감사합니다.





OpenGL Test - Lighting Position, Ambient, Diffuse, Specular, Shineness (Sphere, Cone, Tetrahedron, Teapot) - C++(MFC) Source / OpenGL을 이용한 광원의 위치와 주변광, 확산광, 반사광, 물체의 재질 테스트

Created Date : 2006.10
Language : C++(MFC)
Tool : Visual C++ 6.0
Library & Utilized : OpenGL
Reference :  OpenGL reference
etc. : -

This program is made for testing OpenGL properties.
The code test Light Position, Ambient, Diffuse, Specular and Surface Roughness.
I have made the program form view style interface.
We can adjust values by slide bar.
You can download entitle source code. < Here >


If you have good idea or advanced opinion, please reply me. Thank you
(Please understand my bad english ability. If you point out my mistake, I would correct pleasurably. Thank you!!)
Lighting Position Test

Ambient, Diffuse, Specular, Shininess Test

-------------------------------------------------------

OpenGL을 이용하여 광원의 위치와 주변광, 확산광, 반사광, 물체의 재질을 테스트 해 볼수 있는 프로그램입니다.
전체 소소는 여기서 받을 수 있습니다.


좋은 의견 어떤 글이든 답변 남겨주세요

감사합니다.

f(N) counts number of '1'. For example f(13) = 6. So f(1)=1. What next number do satisfy the rule?



f(N) counts number of '1'. For example f(13) = 6. So f(1)=1. What next number do satisfy the rule?


---------------------------------------------------


양수 n에 대해서 1과 n 사이에 1이 나오는 횟수를 나타내는 함수를 f(n)이라고 한다. 예를 들어 f(13)=6이다. f(n)=n이 되는 첫번째 양수는 1이다. 두번째 양수는 무엇인가?