Search
📐

Contact Angle Calculator

Stacks
Python
Flask
OpenCV
Docker
진행기간
2021.03.

TL;DR

액체 방울의 표면장력 측정을 위해 사진으로 접촉각을 계산하는 서비스를 개발했습니다.

왜 만들었을까?

지인의 연구 과제 중 소재와 액체가 이루는 표면장력을 측정하는 과정이 있었는데, 직접 선을 긋고 각도계로 계산한다는 이야기를 듣고 만들게 되었습니다.
액체 방울(파란 원)과 소재 표면(빨간 선)을 마킹해주면 프로그램이 접점을 찾아서 각도를 계산하게 됩니다.

담당

프론트엔드, 백엔드 개발을 담당했습니다.

세부 내용

프로그램은 액체 방울이 타원이라는 가정을 기반으로 합니다. Open CV를 이용해서 파란 원의 장축과 단축 위의 네 점을 구한 후 네 점을 지나는 타원의 방정식과 빨간 선을 지나는 직선의 방정식의 접점과 접선의 각도를 계산하게 됩니다.

회고

기존에 각도계로 재던 문제를 해결해서 같은 사진에 대해 일관된 접촉각을 반환할 수 있게 되었고, 실 사용자 또한 만족했습니다.
하지만 액체 방울의 외곽선과 소재 표면을 사람이 직접 찾아야하는 점을 해결하지 못했습니다.
예시 사진과 다르게 실제 사진은 표면이 매끄럽지 못했기 때문에 Open CV를 통해 외곽선과 직선을 찾지 못하는 문제가 있었습니다.
따라서 외곽선과 직선이 있는 사진에 대해서는 항상 같은 접촉각을 찾지만 원본 사진을 대상으로는 사람이 개입할 수 밖에 없기 때문에 항상 같은 값을 내지 못한다는 한계가 있습니다.