스마트 폰이란?

도움될지도? IT 정보 2010. 9. 9. 16:09

스마트폰 개발 전선에 뛰어든지도 2년이 다 되어간다.
특히 안드로이드를 처음 공부할 땐 서적조차 그다지 없었는데 , 그때부터 꾸준히 안드로이드 공부를 했으면 내가 지금쯤 안드로이드 코딩신이...

어쨋든 스마트폰이 말이 많다.

대중성을 확보하게 된 필두에는 단연 아이폰이 있을 것이다 . 그 영향으로, 요새에는 "스마트 폰? 처음 듣는데, 그게 뭐야?" 라고 묻는 사람은 없다.

그럼에도 굳이 스마트 폰이 무엇인지에 대한 포스팅을 하는 것은, 스마트 폰을 그냥 다른 폰(피쳐폰)보다 기능이 많은 폰으로 생각하는 사람들이 스마트 폰에 대한 지식을 얻고자 했을때 조금이나마 도움이 됐으면 해서다.

스마트 폰이 무엇인지에 대해 글을 쓰기 이전에, 이해를 위해 짚고 넘어가야 할 키워드가 있다.

바로 "OS"다 .

OS - Operating System.  컴퓨터에 관심이 있는 사람들이라면 생소한 단어가 아닐것 같다.

<컴퓨터의 하드웨어나 사용자 사이에서, 사용자가 작성한 프로그램을 번역하고 화일을 편성하며 컴퓨터 전체를 감시함으로써 효율성을 최대로 높여 주는 프로그램 집단. 공용 프로그램을 사용자가 쓰기 쉽도록 도와주며 모든 하드웨어나 주변 장치들의 기계적 전자적 특성을 고려하여 상호간에 자료를 원활하게 주고 받을 수 있도록 기본적인 운용을 담당하는 것. 컴퓨터에 관련된 모든 자원을 제어하는 소프트웨어.> OS 의 정의다 . 

간단히 말해서, 하드웨어 관리를 용이하게 하는 기능들을 집합으로 하는 사용자를 위한 인터페이스라고 생각해 볼 수 있다.
 
이해가 안된다면,이 단어를 처음 듣는 사람들이라도 하나의 예를 들면 감이 잡히리라 생각한다.
바로 우리가 사용하고 있는 컴퓨터의 "Windows" 가 그 일례다.
또는 Linux, Dos, MaxOS등을 예로 들 수 있다.

자, 이제 OS가 뭔지도 알았는데, 대체 이게 스마트 폰과 무슨 관계라는 걸까 ?

아주 큰 관계가 있다.
그 전의 핸드폰에는 OS가 탑재되어 있지 않았는데, 스마트폰에는 탑재가 되어 있다는 것이 가장 큰 차이인 것이다.

컴퓨터와 같이 OS가 들어가있기 때문에, 여러가지 프로그램(application)을 깔 수 있고, 시스템 파일도 조작 할 수 있고, 문서도 열수 있으며, 컴퓨터를 원격제어하는 등의 컴퓨터와 흡사한 기능을 할 수 있는 것이다.

                             스마트폰에서 구글 지도 어플을 실행시키고 있다. AR 프로그램. 


현재 폭발적인 인기를 누리고 있는 Iphone에는 IOS가,  넥서스원 등의 안드로이드 폰엔 android OS가, HD2나 옴니아와 같은 윈도우 폰엔 Windows Mobile OS가 탑재 되어있다.



                                                                                     스마트폰 시장 점유율

각각의 OS에 따라 환경에 맞는 어플리케이션을 다운받아야 하기 때문에, 퀄리티 높은 개발자가 많은 플랫폼의 스마트폰을 고려해야 하겠다.



Matlab을 이용한 영상처리 - 8. 샤프닝과 ROI 처리

Programming/Image Processing 2010. 8. 30. 19:49
저번 글에서 고주파와 저주파 필터에 대해 살펴보았다 .
이번 포스팅은 좀더 실용적인 부분에 주안점을 두게 될것인데 ,

1. sharen
첫번째로 살펴 볼 내용은 edge sharpen이다 . 이 필터를 사용하게 되면 뚜렷하게 이미지를 볼 수가 있다.
알고리즘은 이러하다 .

원 영상에서 평균 필터링으로 얻은 영상을 빼주면 뚜렷한 부분만 남게 된다 . 

 

10 번 , 11번 라인에서 평균 필터링 이미지를 만들고 12번라인에서 원 영상에서 이 값을 빼어주고 있다.
결과를 보자.


2 번 글의 이미지와 비교해보기 바란다. 산부분에서 좀더 뚜렷한 이미지가 보인다.

 샤프닝
1. 원영상 - average로 흐릿해진 영상
2. 정의된 필터 (unsharp)사용



2. ROI

지금까지 필터링을 영상 전체에 걸쳐 적용시켰다면, ROI(Region of interest)는 영역을 지정하고 그 영역내에서만 필터링등을 적용한다.

roipoly 함수를 이용하여 해당 영역을 지정할 수 있는데, 그 좌표값은 [열][행] 순이며, 적은 순서대로 선을 이어 영역을 만드는 형태이므로 순서를 제대로 지키지 않으면 영역이 맞꼭지각을 이루는 리본모양이 될 수도 있으니 주의!

영역을 설정하고 나면 roifilt2를 이용하여 해당 영역에만 만들어놓은 필터를 적용가능하니 이용해보자.


roi 변수에 영역을 지정하고, average 와 unsharp를 이용해보았다.




아래쪽의 팔목에만 각각 unsharp, average 필터를 적용하였다.
그 차이는 일목요연하다.

 roi
roipoly(image, [열],[행]);  -  영역 지정
roifilt2(filter,image,region);  -  지정 영역에 필터 적용

Matlab을 이용한 영상처리 - 6. 필터링이란?

Programming/Image Processing 2010. 8. 27. 14:28

Filter는 그 단어의 의미대로 특정 픽셀을 거르는 역할을 한다.

마스크에 해당하는 배열을 넘겨주면 그것을 현재 픽셀과 그 주변 픽셀과의 계산을 통해 적절한 결과를 낸다.

그 계산 과정을 c 언어로 표현하자면, 

for(int i = 1 ; i < N; i ++ ){
  for( int j = 0; j < M; j++){
    for(int offset_I = -3; offset_I < 3 ;  offset_I ++){
       for(int offset_j = -3; offset_j < 3; offset_j++){
           product =  마스크배열[offset_i][offset_j] * 주변픽셀[offset_i][offset_j];
           sum += product;
       }    
    }//주변 픽셀 검색
     image[i][j] = sum;
  }
}//전체 이미지 픽셀
와 같은 형태다. 

주어지는 마스크 배열에 따라 이 결과는 천차만별인데 , 이를 이용해 이미지에 다양한 변화를 줄 수가 있다.

이번 포스팅에서는 평균필터링과 고주파 필터링에 대해 살펴본다.

평균필터의 형태는 다음과 같다. ( 3 X 3 일때 )

1/9 * [ 1 1 1 ; 1 1 1 ; 1 1 1] 

위의 알고리즘과 연계해서 생각해보면, 현재 수정하고 있는 픽셀의 값은 주변 픽셀들과 자신을 평균내어 결정 된다는 것이다.

평균을 낸다면 이미지는 ? 경계선뿐만아니라 이미지가 전체적으로 흐려지게 될것이다. 
(모든 픽셀이 주변픽셀들의 값과 비슷해진다는 얘기니까.)

이해를 돕기위해 간단한 예를 들어보자.

255    0   255
250    0   250
150   10  150

와 같은 3 X 3 의 원본 이미지가 있다. 
원본이미지는 중앙에 선명한 검은 선이 있다.
현재 정중앙의 픽셀을 검색하고 있다고 할 때 이 이미지에 평균 필터링을 적용하면,

255 * 1/9 + 255 * 1/9 + 250 * 1/9 + 250 * 1/9 + 150 * 1/9 + 150 * 1/9 = 146.6666...

이미지는 

255  0   255
250 146 250
150  10 150

이 된다. 한 픽셀에만 적용해보았지만 중앙의 경계선이 뭉개졌다.
이와 같은 과정이 전체 이미지에 적용된다면 전체 이미지가 흐려질 것이라고 이해할 수 있다.

Matlab에서는 필터를 만들때 fspecial이라는 함수를, 
필터를 적용할때 filter2(filter,image, shape)의 함수를 이용한다.

직접 저렇게 필터배열을 넘겨주어도 되지만 자주 이용되는 필터는 Matlab에 이미 배열로 저장되어 있다.

평균필터링은 'average'로 호출할수있으며, fspecial 첫번째 인자로 지정가능하며 두번째 인자로 마스크의 크기를 지정할 수 있다.

평균필터링의 실행 결과를 보자.



확연한 차이를 보이기위해 마스크의 크기를 11 X 11로 처리했다.
원영상과 비교해 확실히 흐리게 나타났다.