로고합성
-
[OpenCV, C++] alpha 채널이 있는 이미지 합성(블랜딩) 오류 해결Computer Vision & AI/OpenCV 2022. 6. 14. 11:34
기본적인 오류들은 채널 수, 타입, 사이즈 확인정도면 디버깅이 가능하다. (대부분의 오류는 Mat연산시에 위의 내용들이 맞지 않아서 발생했다.) 지금 생겼던 오류는 배경에 로고를 합성할 때 나타났는데, logo 이미지에 alpha채널까지 4채널이라 소스 이미지에 바로 연산을 할 수 없었다(소스=3채널) 그래서 cvtColor함수로 BGRA2BGR 변환을 했는데 로고가 이상하게 변형되었다....... 원인은! 로고를 만들때에 있었다. B,G,R 채널의 배경이 검은색(0값)이 아니라 다른 색이 있었고 그 위에 알파채널을 씌웠기 때문에 배경이 투명하게 보였었는데, 3채널로 변환하니 알파채널이 제대로 적용되지 않았던 것. 그래서 이상한 로고에 마스킹을 한번 더 해서 해결하였다. 또 주의사항은 copyTo로 마스..