ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Computer Vision(Gaussian Filtering)[3]
    프로그래밍/Python 2020. 4. 20. 13:07
    반응형

    이번 시간에는 Color(RGB)로 Blurring한 이미지를 출력해보겠다.


    처음 이 문제를 풀 때는 머리가 하얬다.


    '2차원 배열에 RGB를 넣으려면 어떻게 해야하지?' 라는 생각이 맴돌았다.


    해결 방법은 3차원 배열이었다. [행][열][RGB] 라는 배열을 사용하면 간단했다.


    gaussian filter와 convolve 할 함수를 만들어보았다.


    Convolve Color 코드



    zero-padding을 할 때, 3차원의 RGB에는 padding을 해 줄 필요가 없기 때문에 (0,0)으로 패딩을 시키지 않는다. 


    이를 rot90() 함수를 통해 180도 회전시키고, RGB가 추가된 배열을 선언한다.


    이 배열의 각 R, G, B에 맞게 각각 연산을 해주었다. 


    세 번 수행하는 for loop를 사용해도 되지만 copy & paste가 코드를 짜는 데에 있어서 더 쉬울 것 같아 


    저렇게 코드를 작성했지만 문제는 전혀 없다.


    이렇게 return된 이미지를 gaussian convolve 시켜준다.


    Gaussian Convolve 코드




    이제 이를 실행시켜 RGB blurred image를 확인해보자.


    실행 코드(Sigma = 3)



    array로 변환하여 float로 바꿔주는 것 까지 전 단계(흑백)와 같다.


    이번에는 아인슈타인의 이미지를 blurring 해보았다.


     

    <Original Image>

     

    <Blurred Image>


    이미지가 흑백이라 그렇지 RGB의 요소를 어느정도 들고있다...


    아무튼 이렇게 Blurred Image(RGB)를 출력해보았다.


    다음 시간에는 High Frequency Image를 출력하여 Hybrid된 이미지를 출력해보겠다.



    전체 코드가 필요하신 분은 댓글로 이메일을 남겨주세요.


    * 엄연히 제가 직접 작성한 코드입니다. 무단 복제는 금지해주세요!


    댓글

Designed by Tistory.