4-4. 샤프닝

언샤프 마스크 필터 (Unsharp Mask Filter)

    Unsharp, 말 그대로 날카롭지 않은 영상(=부드러운 영상)을 이용하여 날카로운 영상을 생성하는 방식

     샤프닝 계수를 추가해서 샤프닝의 정도를 조절할 수 있다

언샤프 마스크 이해도 (출처: FastCampus)

    아래 코드는 언샤프 마스크 필터를 테스트해본 코드 로직을 작성해보았다.

#import OpenCV

#1) grayscale iamge
# read grayscale image
# create blurred image by using GaussianBlur function
# there are 2 ways to create sharpen image
# 1. use addWeighted function (you add weight of 2 to source iamge and then weight of -1 to blur image)
# 2. use clip function (you need to calculate all pixels in float and then convert back to uint8)

#2) color image
# read color image in YCbCr color space
# create blurred image by using GaussianBlur only on Y channel
# test both methods and store sharpend Y channel to original color image
# convert sharpened image back to RGB color space

그레이스케일 영상에 두 방식을 적용한 결과
컬러 영상에 두 가지 방식을 적용해 본 결과


4-7. 실전 코딩

카툰 필터 카메라

    카툰 필터와 스케치 필터를 구현하여 카메라 입력 영상 / 사진 영상을 실시간으로 필터링을 적용해본다.

    구현할 기능:

     1. 카툰 필터

     2. 스케치 필터

     3. 특정 키 입력 누를 때마다 모드 변경 

     * 필터 구현 방식의 경우 정답은 없다. 여기서 제안된 방식을 사용해도 되지만, 다른 곳에서 제공하는 방식을 사용해봐도 좋다.

카툰 필터 원리 (출처: FastCampus)
스케치 필터 원리 (출처: FastCampus)

    * 연산 처리 Tip: 프레임 영상을 사이즈 그대로 가져와서 처리할 경우 연산이 매우 오래 걸릴 수 있다. 그래서 필터링 전 사이즈를 줄였다가 필터링 후에 기존 사이즈로 복구하는 방식으로 처리하면 연산 속도가 올라간다.


인증 타임

언샤프 마스크 필터의 경우 addWeighted 함수를 그레이스케일 영상과 동일하게 컬러 영상에 적용했는데 결과가 제대로 나오지 않아서 뭐가 문제인지 모르겠다. 직접적으로 피드백을 받을 수 있는 창구가 없어서 좀 답답하다. 수강 듣는 다른 분들과 커뮤니케이션 할 수 있는 공간이 있다면 물어라도 볼 수 있지 않았을까?

실전 코딩의 경우 원리만 이해하고 직접 테스트해보지는 못해서 좀 아쉽다. PC에 캠을 달아야할지 고민되는 순간이다 ㅎㅎㅎ 이번 필터링 챕터에서 재밌던 점은 앱에서 흔히 보던 필터링 옵션들을 직접 구현해 볼 수 있어서 재밌었다. 다른 필터들의 원리를 찾아서 적용해봐도 좋을거 같다.

 

4-4. 공부 인증 사진
4-7. 공부 인증 사진


#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #OpenCV를 활용한 컴퓨터비전과 딥러닝 올인원 패키지 Online

 

패스트캠퍼스(FastCampus) 강의 둘러보러 가기 

   

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.


 

+ Recent posts