제이슨 본( Jason Bourne, 2016 )

전작 1, 2, 3 편과 비교해서 크게 달라진 건 없지만 그래도 맷데이먼 주연이라 그런지

역시 재미있다. 그런데 토미 리  존스가 너무 늙은 것 같아 안타깝다. 


나우 유 씨 미2( Now you see me 2, 2016 )

이상하게 이 영화는 적응이 안된다. 주위에 이 씨리즈를 재미있어 하는 사람이

많은데 난 아무리 잘 봐주려고 해도 재미가 없다. 긴장감도 없고, 일단 마술이라는 것이 

장난하는 것 같아 현실감이 떨어지는 것 같다. 화려한 동작 하나 하나에 전율을

느끼는 사람도 있겠지만.


아이 인 더 스카이( Eye in the sky, 2015 )

오늘 아침 신문에도 시리아 내전 중 공습에 다친 5살 꼬마애 사진이 실렸다. 

공습한 시리아 정부군 탓일까? 내전을 벌이고 있는 IS 탓일까?

영화처럼 영국, 미국, 시리아, 군, 정치인들 다 책임져야 할까?


영화가 재미는 없다. 오히려 리포트 제출을 요구하는 숙제를 내주는 기분이다.

그러니 국내에서 개봉도 안되었겠지.


영상을 보면서 논쟁을 벌이는 그 주체들의 생각이 다 일리가 있다.

장군의 입장, 법무장관, 외교부 장관, 국무장관, 부통령.

심지어 드론 조종사도 나름의 양심의 가책과 논리가 있다.


45%를 만들어내는 대령. 딸의 인형을 안고 집에가는 장군

그렇게 죽어가고 잊혀져간다. 

'영화' 카테고리의 다른 글

부산행, 메카닉  (0) 2016.10.08
아가씨, 닌자 터틀2, 스타트렉 비욘드, 고스트버스터즈  (0) 2016.10.02
에일리언  (0) 2016.07.24
샤이닝, 워크래프트  (0) 2016.07.10
배트맨 대 슈퍼맨, 백설 공주와 사냥꾼  (0) 2016.07.09
Posted by 게 르 니 카

2016. 7. 24. 14:34 영화

에일리언

SF계의 전설같은 영화 '에일리언' 을 제대로 본 적이 없었던 것 같다.

징그럽기도 하고, 딱히 괴물나오는 영화에는 흥미를 못느껴서.

지나가다 보이면 잠시 보다가 넘기고는 했는데 더 늦기전에 한번은 전체를 

다 봐야겠다고 생각해서 작정하고 4편을 연달아 보았다. 


에일리언 ( Alien, 1979 )

오래되서 화면은 조금 조잡하지만 스토리가 훌룡하다. 

특히 인조인간이 등장하면서부터 더 몰입하게 된다.

새로운 세계관의 창조, 그래서 1편은 항상 훌룡하다.

리들리 스콧 감독.



 에일리언2( Aliens, 1986 )

제임스 카메론 감독, 역시 긴장감이랄까 꼭 영화같이 영화를 

만드는 재주가 있는 것 같다. 마지막 폭발하는 장면에서 아이를 구하는

장면이 억지스럽기는 하지만 그래도 4편 중에 제일 재미있다.



에일리언3( Alien 3, 1992 )

데이비드 핀처, 나랑은 살짝 안맞는 것 같다. 3편은 분위기도 어둡고, 

내용도 재미있지 않았다. SF영화에 광신도, 교도소 행성이라니....



에일리언4( Alien4, 1997 ) 

감독도 잘 모르겠고 본격적으로 망가지기 시작한 것 같다.

에일리언의 대모가 되다니.... 거 참...

Posted by 게 르 니 카

기존에 matlab만 사용하다가 

ubuntu로 넘어오면서 octave라는 프로그램을 알게 되었다.

소프트웨어 센터에서 QtOctave를 설치했는데 그래프만 그리면 화면을 닫을 수가 없다. 

그래서 사용을 못하다가 더 이상 미루면 안될 것 같아 작정하고 검색을 시작했다.

몇 번의 시행착오 끝에, 비교적 쉽게, 정상적으로 동작하는 옥타브를 설치했다.


일반적으로 

sudo apt install octave

하면 된다고 하는데 .... 안된다.


우선 octave에 사용된 라이브러리를 먼저 설치해 주어야 한다.

sudo apt install build-dep octave
이 상태에서 설치하면, qt4가 없어서 GUI를 설치 못한다는 경고가 보인다.
시냅틱 팩키지 매니저에 가서
libqt4-opengl-dev 를 설치한다.


다음, 아래 주소로 가서 최신 소스를 다운받는다.
이 글 작성 시에는 octave-4.0.3.tar.gz.


원하는 곳에다 소스를 풀고 컴파일하고 설치한다.
./configure
sudo make -j4
sudo make install
잘 동작한다.

ps1. 이 글은 우분투 14.04 에서의 상황인데 노트북의 16.04에서 해보니 잘 안된다.
      그래서 찾아보니 그냥 sudo apt install octave 만으로도 똑 같이 설치된다. ㅠㅠ.


ps2. 에디터에 문제가 있어서 검색을 하다보니 아래 방법도 나쁘지 않은 것 같다.

sudo add-apt-repository ppa:octave/stable

sudo apt update

sudo apt upgrade


'프로그래밍 > 영상처리' 카테고리의 다른 글

허프 변환 - 원(2/2)  (0) 2016.05.11
허프 변환 - 원(1/2)  (0) 2016.05.03
허프 변환 - 직선  (0) 2016.04.28
모달리티(Modality)  (2) 2016.04.13
Posted by 게 르 니 카

2016. 7. 10. 21:58 영화

샤이닝, 워크래프트

샤이닝( THE SHiNiNg, 1980 )

잘만든 영화다. 높은 천장의 호텔만으로도 무서운데,

대니의 눈에 보이는 귀신들도 무섭다. 

 

 

워크래프트( Warcraft, 2016  )

게임을 좋아하는 사람이라면 시간 떼우기 괜찮은 영화.

Posted by 게 르 니 카

배트맨 대 슈퍼맨 : 저스티스의 시작( Batman vs Superman : Dawn of Justice, 2016 )

둘 다 좋아하는 히어로들인데, 

슈퍼맨은 크리스토퍼 리브가 주연한 첫 영화를 잊을 수 없다.

지진으로 땅속에 묻힌 여자친구를 구하기 위해 지구를 거꾸로 돌리던 그 장면,

배트맨은 다크 나이트가, 아직도 쩝쩝거리는 조커가 생각난다.

그런 두 영웅을 데려다가 영화를 조금 이상하게 만든 듯 하다.

잠재적인 적이 될지도 모른다는 배트맨의 논리도 이상하고,

자경단 놀이 그만두라고 하는 슈퍼맨도 이상하고,

제일 맘에 안드는 건 그렇게 치고 박고 싸우다가,

아무리 부모의 죽음에 대한 트라우마가 있다고 쳐도,

슈퍼맨 어머니가 죽는다니까, 모든걸 용서하고 화해한다는게 말이 되나.

자연스럽게 최근 히어로물의 인기에 한 다리 걸친 원더우먼이 최대 수혜자인듯.


백설 공주와 사냥꾼 (  Snow White and the Huntsman, 2012 )

처음 30분 보고 이 영화를 내가 끝까지 봐야 하나 고민을 좀 했다.

성에서 도망칠 때 탔던 말 등의 담요가 보였다 안보였다 한다. 

( 무슨 '옥의 티'  프로도 아니고 )

혹시나 잔혹 동화처럼 조금 뒤틀리기라도 하려나 하고 억지로 보았는데,

아주 원본에 충실하게 따른 것 같다.

그나마 왕비가 매드맥스에 나온 '샤를리즈 테론' 이라서 흥미롭긴 했다.

공주 '크리스틴 스튜어트' 가 동성애자였구나.

'영화' 카테고리의 다른 글

에일리언  (0) 2016.07.24
샤이닝, 워크래프트  (0) 2016.07.10
주토피아, 스켈리톤 키  (0) 2016.07.02
곡성, 아이덴티티, 이벤트 호라이즌  (0) 2016.06.26
시빌 워, 엑스맨 퍼스트 클래스, 디버그  (0) 2016.06.11
Posted by 게 르 니 카

주토피아( zootopia, 2016 )

근래에 본 애니메이션 중에서는 가장 감동적이다. 

주디의 꿈을 향한 열정도 그렇고 

닉의 어릴적 트라우마를 다룬 것도 그렇고. 플래시도 참 웃겼다. 


영화 곳곳에 재미난 부분이 많다. 자연주의자들, 미스터 빅....

이젠 그래픽은 아무리 잘 만들어도 화제가 되지 않을 만큼 

기술이 발달했지만 이 영화의 그래픽은 특별히 좋았던 것 같다.

폭포에서 떨어지는 물, 동물들의 털, 숲... 


그런데 왜 그런지 모르겠는데 영화보면서 이상한 생각들이 들었다.


홉스와 닉이 화해하는 장면을 보면서 문화라는 것을 

이런식으로 은밀하게 전파시킬 수 있겠구나 라는 생각. 


육식 동물과 채식 동물을 화해시키려는 것이 

무슬림 사람들과 문제가 많은 미국민들에게 화해를 권하는 구나 하는 생각.



스켈리톤 키( skeleton key, 2005 )

지인의 추천으로 보았다. 전체적으로 이야기를 끌고 나가는 힘은 나쁘지 않았다.

반전도 나름 매력적이었다. 그런데 영화 전반의 소재가 '흑마법'이다.

캐롤라인이 무언가 중요한 것을 할 때마다 흑마법이랑 연관이 되니

도무지 감정이입이 안된다. 의무감 비슷하게 다 보긴 했지만 아쉬움이 더 크다.

'흑마법' 이 아니라 차라리 '영매'나 '연금술' 같은 것을 소재로 했으면 반전 영화

순위에 오를 것 같은데... 

Posted by 게 르 니 카

곡성( 2016 )

나홍진 감독의 두 전작, 추격자와 황해를 아주 감동적으로 보았기에

그 만큼의 많은 기대를 갖고 보았는데 기대 만큼은 아니어도 잘 만든 것 같기는 하다.

추격자가 연쇄 살인마를 잡는 과정, 황해가 조선족과 청부 살인에 관한 내용이라면

곡성은 현실과 약간 거리가 있는 소재인 것 같다.


내용이야  그렇다 치고 오픈 결말로 결론에 대해서 말들이 많은 것 같던데,

역시나 다 보고나서도 스토리가 정확하게 정리가 안되고 느낌만 맴돈다.


주위 사람들에게 나홍진 감독의 인터뷰 얘기나 - 천우희가 수호신이다, 우연한 살인사건의

살인자와 피해자의 인연을 얘기하고 싶다. - 삭제된 부분이 있다는 얘기 - 천우희와 일본인의 격투 장면, 황정민과 일본인이 같은 차를 타고 이동하는 장면, 팩스 받는 장면 - 등을 보태서

정리하면,


악마의 영혼을 가진 일본인이 우연히 곡성에 자리를 잡고 주민들을 살해한다. 주인공의 딸에게

위험이 닥치자 마을을 지키는 수호신 영이 도와주려고 한다. 일광에게 도움을 받기 위해

불러오나 오히려 일광이 일본 악마에게 동류의식을 가져 같이 일을 도모하려고 했으나

수호신 영의 기운에 눌려, 일본인은 내상을 입고, 일광은 다음을 기약하며 떠난다.


이런 관점에서 보면 '디 어더스' 같기도 하다. 사람과 영혼들 이야기를 선악에 상관없이

아무 장치 없이 섞어놓아 정돈이 안될 수 밖에 없다. 오픈 결말이라고 퉁치기에는 이야기가

세밀하지 못한 부분이 너무 많이 보인다. 아무래도 감독의 한계가 아닐까.... 


두 전편과 비슷한 방식으로 이야기를 끌고 가는데, 이번에는 결론마저 제대로 처리하지 못하는

것으로 보아 다음 편 영화에서 감독의 장수, 단명의 판단이 내려지지 않을까 싶다.



아이덴티티( Identity, 2003 )

비오는 날 어느 모텔에서 벌어지는 살인 사건을 무척이나 긴장감있게 그려놓았다.

끝까지 보고나면 중간중간 장면이 암시였구나를 알겠지만 이 여러 사건들이

이렇게 결론이 날 것이라고는 상상도 못했다. 중간중간 조금 이상하기는 하다

하면서도 빠른 스토리에 끌려다녔다.

각 인물의 개성도 특이하고 스토리도 짜임새 있었다.

마지막은 정말 소름.



이벤트 호라이즌( Event Horizon, 1997 )

웜홀을 통과해 우주 여행을 하기 위한 시험비행을 하던 우주선이 어느 차원의 우주에 갔다가 돌아온 이후 지옥의 악령이 씌워져 있었다. 이 우주선은 돌아가려는 승무원들을 하나 하나 제거한다. 하지만 지옥이라고만 묘사하지 그게 무엇인지는 끝내 밝히지 않는다. 그런 의미에서는 스토리가 조금 약하다. 그냥 로렌스 피시번과 샘 닐의 젊은 시절을 보는 것만으로도 재미있기는 하다.

Posted by 게 르 니 카

2016. 6. 11. 01:04 문학

전화번호

핸드폰을 정리하다 보니 메모장에 언제 썼는지도 모르는 시가 하나 들어 있다.

내용을 보니 어떤 사건이 소재가 되었는지 짐작이 된다. 

아마도 친구들과 술을 마시고 집에 돌아오면서 썼을 것이다.



전화번호


버스 창 밖으로

이번 겨울 처음인 것 처럼

눈은 내리고

알 수 없는 번호로 메시지가 와서

나를 보고 싶다 하는데


알 수 없는 번호가 너무 궁금해 

내 가슴이 답답해 오네


첫사랑 그녀가 생각나기도 하고

그녀와의 사랑이 자꾸 떠올라

좁은 좌석에 몸을 이리저리 뒤척이는데


서툰 몸짓만 기억이 날 뿐

아! 이젠 그녀의 이름도

얼굴도 떠오르지 않아.


눈은 녹고 있는데

버스는 집 앞에 도착해


나는 내려 멀어져 가는

버스를 보고만 있네.


2016.1.20.

'문학' 카테고리의 다른 글

달을 보며 2  (0) 2016.12.09
여백  (0) 2016.12.09
시골 새벽  (0) 2016.04.05
을지로 입구  (0) 2016.02.24
비오는 탄천가에 앉아서  (0) 2015.09.07
Posted by 게 르 니 카

시빌 워( Civil War, 2016  )

마블이 영화를 참 잘 만드는 것 같다. 감칠맛이랄까. 적당히 섞어서는 진지하기도 하고 재미있기도 하고 액션, 의상도 참 멋지고. 이러니 어른들도 이런 황당한 만화에 빠져들 수 밖에. 

한편으로는 이제는 제조업이 아니라 컨텐츠의 시대라는 걸 절절하게 느끼게 한다.


엑스맨 퍼스트 클래스 ( 2011 )

이 영화 이전에 보았던 엑스맨 영화의 모든 상황이 한 번에 정리가 된다.

매그니토와 프로페서 X의 친한 듯하면서 증오하는 관계, 

어쩌다 프로페서 X는 휠체어를 타게 되었나. 등등. 

스케일도 크고 재미있다. 

그런데 시빌워도 그렇고, 이 영화도 그렇고, 문제의 발단이 다 초인 관리에 관한 갈등이다.

실제로 이런 부류의 생명체가 존재한다면 인류가 제어할 수 있을까?

인류보다 더 지적이거나 강력한 힘을 가진 외계인이 나타난다면 그들을 외계인 등록법으로

제어한다고? 아마도 신에게 그러듯 그저 기도하며 구원해달라고 매달리고 있어야 할 것 같은데.


 디버그 ( Debug, 2015 )

또 낚인듯하다. 하는일이 프로그래머다 보니 'DEBUG'라는 단어가 낯설지 않아 보게 되었는데,

사실 '버려진 우주선에 해커들이....  ' 선전 문구 몇 줄만으로는 먼가 그럴싸해보이지 않나?

기본 모티브는 2001년 오딧세이와 비슷하다. 자기 스스로 방어하는 컴퓨터가 우주선을 

수리하러 오는 사람들마다 죽여서는 그 사람의 정신을 학습데이타로 사용해가며 강해진다.

연출력의 부재인지, 연기력 문제인지는 모르겠지만 전체적으로 허술하다.

압권은 먼저 당한 동료들의 도움으로 인공지능을 물리친다니..... 

'영화' 카테고리의 다른 글

주토피아, 스켈리톤 키  (0) 2016.07.02
곡성, 아이덴티티, 이벤트 호라이즌  (0) 2016.06.26
버드맨  (0) 2016.05.08
스타워즈7, 와호장룡2, 차이나타운  (0) 2016.05.06
게임 체인저, 데드풀  (0) 2016.05.05
Posted by 게 르 니 카

허프 변환을 이용한 원의 검출 중에 반지름을 고정시키지 않은 방법에 대해서 정리한다.


기본 이론은 앞에서 정리했고 보완된 작업 위주로 정리한다. 


1) 반지름 범위 반영.

2) 스무딩.

3) 로컬 극대값 계산.

4) 근접 원들 합치기.

5) 결과.

6) 문제점.


1) 반지름 범위 반영

찾고자 하는 원의 크기를 범위로 지정할 수 있는데, 범위가 넓어질 수록 메모리와 계산량이 증가한다. 또한 반지름의 크기를 어느 정도 세밀하게 찾을 것인가를 지정할 수 있는데 이 역시 세밀하게 할 수록 부하가 심해질 것이다. 일단 예제는 반지름이 30~60 픽셀 원을 찾도록 하고 간격은 5 픽셀 정도로 했다. accumulator 공간이 반지름 변수의 추가로 3차원이 되었다.

rmin_idx = 30;

rmax_idx = 60;

r_step = 5;

accumulator = zeros( height+2*rmax_idx, width+2*rmax_idx, rmax_idx );


for r_idx=rmin_idx : r_step : rmax_idx

    for y_idx=1 : height

        for x_idx=1 : width

            if( edge_image(y_idx,x_idx) > 0 )

                for degValue=5 : 5 : 360

                    a_idx = round( x_idx-r_idx*cos(pi*degValue/180) );

                    b_idx = round( y_idx-r_idx*sin(pi*degValue/180) );

                    accumulator( b_idx+r_idx, a_idx+r_idx, r_idx ) = accumulator( b_idx+r_idx,                                                                                            a_idx+r_idx, r_idx )+1;

                end

            end

        end

    end

end

z축의 관점에서 보면 6군데에서 값이 크게 보인다. 

보이는 각도를 변경시키면 더 명확하게 확인할 수 있다. 반지름이 30, 45, 60정도에 주로 분포한다. 

각 반지름에서의 누적된 분포를 보면 다음과 같다. 







2) 스무딩

로컬 최대값을 찾기 위해서 스무딩처리를 한 후 임계값 이하는 0으로 처리한다. 

thresholdValue = 5.0;

for fig=0 : (rmax_idx-rmin_idx)/r_step

    figure(fig+1);

    

    smoothAccum(:,:,rmin_idx+fig*r_step) = imfilter( accumulator(:,:,rmin_idx+fig*r_step),                                                                       fspecial('disk',5), 'replicate' );

    

    for row=1:yd

        for col=1:xd

            if( smoothAccum(row,col,rmin_idx+fig*r_step) < thresholdValue )

      smoothAccum(row,col,rmin_idx+fig*r_step) = 0.0;

            end

        end

    end


    mesh( smoothAccum(:,:,rmin_idx+fig*r_step) );

    view(-15,70);

    title( strcat( 'radius : ', num2str(rmin_idx+fig*r_step) ), 'color', 'black' );

end


3) 로컬 극대값 계산

로컬 극대값을 찾는 함수를 사용해 극대값 위치를 찾는데 편평한( 모든 값이 일정한 ) 평면의  경우 모든 점을 로컬 극대값으로 계산하기 때문에 편평하지 않은 이미지에 대해서만 계산하도록 한다.

posCnt = 0;

posIdx = zeros(10,3); % ( x, y, radius )

for fig=0 : (rmax_idx-rmin_idx)/r_step

    posImg = imregionalmax( smoothAccum(:,:,rmin_idx+fig*r_step) );

    if( max(max(posImg)) == min(min(posImg)) )

        disp( 'no data' );        

    else

        for y=1 : yd

            for x=1 : xd

                if( posImg(y,x) > 0 )

                    posCnt = posCnt+1;

                    posIdx(posCnt,1) = x-(rmin_idx+fig*r_step);

                    posIdx(posCnt,2) = y-(rmin_idx+fig*r_step);

                    posIdx(posCnt,3) = rmin_idx+fig*r_step;

                end

            end

        end

    end    

end


4) 근접 원들 합치기.

같은 원을 다른 원으로 찾은 것 들을 하나로 합치는데 중심간의 거리가 최소 반지름보다 작은 것들은 하나라고 간주한다.( 중심이나 반지름이 약간 다른 원을 합치면서 정확한 원을 약간 벗어나게 찾을 수 있다. 이 부분은 개선의 여지가 있다. )

[ posCnt col ] = size( posIdx );  

cirIdx = posIdx;

cirIdx(:,4) = zeros();

cirCnt = 0;


for outer=1 : posCnt

if( cirIdx(outer,4) == 0 )

cirCnt = cirCnt+1;

cirIdx(outer,4) = cirCnt;

for inner=outer+1:posCnt

eucDist = sqrt( (cirIdx(outer,1)-cirIdx(inner,1))^2+(cirIdx(outer,2)-cirIdx(inner,2))^2 );

if( eucDist < rmin_idx )

cirIdx(inner,4) = cirIdx(outer,4);

end       

end

end

end


mergedMax = max( cirIdx(:,4) );

mergeIdx = 1;


mergeCnt = zeros( mergedMax, 1 );

xtotal = zeros( mergedMax, 1 );

ytotal = zeros( mergedMax, 1 );

rtotal = zeros( mergedMax, 1 );


for idx=1 : posCnt

xtotal( cirIdx(idx,4) ) = xtotal( cirIdx(idx,4) ) + cirIdx(idx,1);

ytotal( cirIdx(idx,4) ) = ytotal( cirIdx(idx,4) ) + cirIdx(idx,2);

rtotal( cirIdx(idx,4) ) = rtotal( cirIdx(idx,4) ) + cirIdx(idx,3);

mergeCnt( cirIdx(idx,4) ) = mergeCnt( cirIdx(idx,4) )+1;

end

for circle=1 : mergedMax

circleIndex(circle,1) = xtotal(circle)/mergeCnt(circle);

circleIndex(circle,2) = ytotal(circle)/mergeCnt(circle);

circleIndex(circle,3) = rtotal(circle)/mergeCnt(circle);

end



5) 결과



6) 문제점

① 이진화의 정밀도에 따라서 이후 작업에 영향 

    - 노이즈의 비율에 따라 끼치는 영향의 정량적인 분석 필요.

② 원주의 가려지는 비율과 노이즈 또는 threshold 값 결정에 주는 영향 정도 파악.

③ accumulator 공간에서 local maxima를 찾기위한 threshold 값을 결정하는 방법 고민.


'프로그래밍 > 영상처리' 카테고리의 다른 글

ubuntu octave 설치  (0) 2016.07.22
허프 변환 - 원(1/2)  (0) 2016.05.03
허프 변환 - 직선  (0) 2016.04.28
모달리티(Modality)  (2) 2016.04.13
Posted by 게 르 니 카

블로그 이미지
게 르 니 카

공지사항

Yesterday
Today
Total

달력

 « |  » 2025.1
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함