Computer Vision & AI/OpenCV
-
[OpenCV & C++] flip을 사용할 때 이미지가 반 갈라지는 문제 해결Computer Vision & AI/OpenCV 2022. 11. 17. 18:47
오늘은 코딩중에 만난 특이 케이스를 기록해보겠습니다. Gpu를 사용해 image를 flip할 때 나타난 현상입니다. flip함수에 대한 설명은 OpenCV 기초 - 2. 영상처리 준비(2) (tistory.com) OpenCV 기초 - 2. 영상처리 준비(2) 영상 생성, 크기 출력, 뒤집기, 복사에 대해서 알아보겠습니다. - 멤버변수 data imread() 함수를 통해 영상을 읽을 수 있지만 지난번에 설명드렸듯이 사진이 존재하지 않으면 문제가 발생합니다. 이 visionprogrammer.tistory.com 여기 잘 정리된 블로그글 참조하시면 좋습니다. 여기서는 해당 문제만을 다루겠습니다. 위 사진을 cuda::flip(srcGpu, srcGpu, -1); 함수를 사용해서 출력했다. cuda::fl..
-
YOLO C++ detect 에러 (C2664)Computer Vision & AI/OpenCV 2022. 11. 9. 13:50
- 환경 & 증상 yolo_v2_class.hpp yolo detect함수에서 에러가 발생 - 원인 파악 과정 인자가 다르다는 에러가 나옴. detect함수에서 F12눌러서 코드 들어가보니 LIB_API std::vector detect(std::string image_filename, float thresh = 0.2, bool use_mean = false); LIB_API std::vector detect(image_t img, float thresh = 0.2, bool use_mean = false); 이렇게만 나오는데... 코드 짜신 분은 인자로 Mat을 넣어놨다. 그래서 안되나 싶었는데 그분은 잘 되셨음... 왜 나만 안되는걸까?! - 해결방법 #ifdef OPENCV std::vector ..
-
[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로 마스..