모르는 원의 중심
위와 같은 사진이 있다. 저 사진으로부터 녹색 테두리를 갖는 노란색 원의 중심이 어디인지 정확히 결정해야 한다. 좌표값은 픽셀로 주어져 있다.
원본 사진은 보안관계상 공개할 수 없고, 아무튼 내가 얻은 이미지는 저렇게 생겼다.
그래서, 일단 저 원을 이루는 녹색 테두리의 여러 점들을 찍어서 다음과 같은 값을 얻어냈다.
(156,38)
(33,492)
(8,216)
(43,143)
(42,506)
이 점들은 하나의 원 위에 있는 점이다. (원한다면 수백개의 좌표를 찍어볼 수도 있다.)
일단, 헤론의 공식을 응용한 외접원의 공식을 사용하면 반지름은 얻을 수 있다.
R = abc/(4sqrt(s(s-a)(s-b)(s-c)))
a,b,c는 외접원을 결정하는 삼각형의 세 변의 길이가 된다.
문제는 오차가 생긴다는 점.
최소제곱법을 사용하고 싶은데, 원의 방정식은 다음과 같다.
이 원의 x0, y0, r을 얻어낼 수 있다면 좋겠다.
그래서 지금 계산중… (계산 끝나면 이 글은 수정됨.)
2차식을 찾아야 할 때에 최소제곱법을 계산하는 방법을 알아낸 것 같긴 한데, 잘 안된다.
—
결국 정답을 검색했다.
http://www.dtcenter.org/met/users/docs/write_ups/circle_fit.pdf
http://www.ulb.ac.be/assoc/bms/Bulletin/sup962/gander.pdf
난 수학적 재능이 없는가보다.
—
위의 알고리즘을 적용하여 만든 프로그램. 파이썬이다.
import numpy
A = numpy.matrix([[23,176],
[156,38],
[33,492],
[8,216],
[43,143],
[42,506],
[4,434],
[180,24],
[41,506],
[5,221],
[253,2]])
avgA = 0
avgB = 0
uu = 0
vv = 0
uv = 0
uuu = 0
vvv = 0
uvv = 0
vuu = 0
for i in A:
avgA+=i[0,0]
avgB+=i[0,1]
avgA/=len(A)
avgB/=len(A)
for i in A:
i[0,0]-=avgA
i[0,1]-=avgB
for i in A:
uu += i[0,0]*i[0,0]
vv += i[0,1]*i[0,1]
uv += i[0,0]*i[0,1]
uuu += i[0,0]*i[0,0]*i[0,0]
vvv += i[0,1]*i[0,1]*i[0,1]
uvv += i[0,0]*i[0,1]*i[0,1]
vuu += i[0,1]*i[0,0]*i[0,0]
U = numpy.matrix([[uu,uv],[uv,vv]])
UU = numpy.matrix([[0.5*(uuu+uvv)],[0.5*(vvv+vuu)]])
S = la.inv(U).dot(UU)
print(S[0]+avgA, S[1]+avgB)
그래서 얻은 답은 (323.8, 327.7)이다. 점이 더 많아지면 더 정확해 질수도 있겠지만…
야근 주의보
주택정책
http://www.wowtv.co.kr/news/wownews/view.asp?artid=A201108170128
일찍 결혼하는 부부에게 혜택이 돌아가는 정책이다. 다시말해서, 이미 늦은 사람들은 걍 포기하라는 정책임.
뭐 이래 -_-
흥미로운 점은…
1. 신랑과 신부 나이 중 어느 것을 기준으로 하는가?
신랑 나이를 기준으로 하면 연하의 신랑과 연상의 신부가 늘어날 것이고, 신부 나이를 기준으로 하면 반대 현상이 발생할 것이다. 평균 나이를 본다면 20세와 결혼하는 30대 후반인 사람들이 많아질 것이다.
2. 적어도 이건 저출산 대책은 아니다.
젊은 부부들은 소득이 적다. 대체로 경력이 길어질수록 수입도 많아지는 우리나라의 직업 구조의 특성을 고려한다면, 젊을수록 소득이 적은건 당연하다. 문제는, 육아에는 돈이 매우 많이 들어간다는 점. 어리다고 해도 들여야 하는 돈의 비중은 적지 않다. 1인분을 쳐야 한다. 그러나 어린 친구가 수입이 있을리는 없다. 따라서, 1인당 수입이 줄어드는 수 밖에 없고 이것은 출산 억제하는 방향으로 작용한다.
이것은 무슨 소리인가
얼마까지 알아보셨어요?
읽어볼만한 글
물리학과 수학은 왜 좋은가
다른 과목은 학교에서 배운 이론과 실제가 다른 경우가 있는 것 같다. 가령, 학교에서 배운 도덕은 현실에 제대로 적용되지 않는다. 교과서에 나오는 경제는 실제로 경제 생활을 하다 보면 “예외” 투성이이다. 미술이나 음악도 이론적으로 아름다운 작품과 실제로 내가 아름답다고 느끼는 작품이 다를 수 있다.
그러나 물리학이랑 수학은 학교에서 배운 법칙이 그대로 현실과 실무에 적용된다. 1과 1을 더하면 2이고, 3과 4를 곱한 것과 4와 3을 곱한 것은 같다. 힘은 가속도에 비례하고 전기력은 전하량에 비례한다. 위치와 시간을 초월하고, 국가와 이념과 종교를 초월해서 항상 현실에서 성립하는 법칙이다.
1
이것이 바로 물리와 수학이 매력적인 이유이다.
2
힘이 들때…
인터넷에 올리는 글의 책임
따라서 이 블로그에도 그렇고, 어느 곳이든지, 내가 글을 올릴 때에는 내가 실제 현실에서 말해도 되는 것만을 말하고, 책임진다.
인터넷의 “snowall”과 현실의 “남기환”은 분리되지 않았다. (달라보이긴 하겠지만.)
이재율 관련 글도, 기독교 관련 글도, 그 외에 수많은 글들도 문제가 있다면 얼마든지 내 의견을 철회할 수 있고, 수정할 수 있고, 삭제할 수 있고, 해명할 수 있다. 그렇게 하기 위해서는, 어느 부분이 문제인지 명확히 해 주어야 한다. 나보고 내 글의 문제점을 찾아내라는 건 불가능하기 때문이다.
