-
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된 이미지를 출력해보겠다.
전체 코드가 필요하신 분은 댓글로 이메일을 남겨주세요.
* 엄연히 제가 직접 작성한 코드입니다. 무단 복제는 금지해주세요!
'프로그래밍 > Python' 카테고리의 다른 글
Computer Vision(Gaussian Filtering)[4]-Hybrid Image (7) 2020.04.20 Computer Vision(Gaussian Filtering)[2] (3) 2020.04.20 Computer Vision(Gaussian Filtering)[1] (6) 2020.04.20