개발관련/OpenCL

고속 푸리에 변환

guuuuuuu 2014. 7. 30. 21:46

고속 푸리에 변환을 해보았다. 

오늘 하루 종일 이것만 했다. 책에 있는 code를 그대로 사용해도 안되서 정말 디버깅이고 뭐고 하루 종일 

error 찾는데 시간을 다 보냈다. 그래도 error는 일단 잡아서 원하는 output이 나왔기 때문에 시간낭비는 아니라고 생각한다. 

일단 푸리에 변환을 해서 얻은 공간 주파수 성분에 저주파 성분을 제거하는 과정을 공부했다. 

보통 이미지 파일을 불러올 땐 프로젝트 파일 안에 이미지 파일을 넣어서 이미지를 불러오는 식이다. 

OpenCL도 마찬가지로 프로젝트 폴더 안에 이미지를 넣어서 불러왔다. 

/* Read image */

readPGM(&ipgm, "lena.pgm"); 아직 OpenCL에 익숙하지 않아서 정확히 맞는진 모르겠지만 

아마 readPGM 을 이용하여 이미지를 불러오는 듯 하다. 

이미지를 불러오는것까진 좋았는데 그 다음 연산부터 에러가 계속 나기 시작했다. 

다른 사진 (pgm확장자)를 가지고 이름만 lena라고 저장한 후 이미지를 불러오면 error가 났던 것이었다. 

그래서 혹시나 하는 마음에 정말 원래의 lena사진을 프로젝트 폴더에 첨부했더니 정상적으로 output 화면이 잘 나왔다. 

이유는 무엇인지 아직 정확히 모르겠다. 이미지의 가로 세로 파라미터 값이 달라서 그랬던 걸까... 아무튼 오늘의 보상은 다음과 같다.


 오늘의 주인공 원본 사진임


 푸리에 변환을 통해 얻은 공간 주파수 결과


 2번째 사진에서 저주파 성분을 제거한 후의 대망의 output 사진