반응형
프로젝트 제작중에
cv::Mat A, B;
A = B;
이렇게 B의 이미지 데이터를 A로 넘기는걸 써봤다..
근데 문제가 생긴다..
나중에 A의 이미지를 다른걸로 바꾸면 B가 이상하게 바뀐다는 것이다..
분명 B의 이미지를 A로 넘기는 것 밖에 안했는데 바뀌는..
그래서 ChatGPT에 물어보니 이미지 데이터를 보내는게 아니고 참조를 한다고 한다.. 대충 A와 B는 같은 메모리를 사용하게 하는 그런건가..? 암튼 저렇게 하면 A가 B의 이미지 데이터를 참조하도록 되기 때문에.. A를 바꾸면 B가 같이 바뀌는 것이였다.. 으으
그래서 해결 방법은 2가지가 있는데
cv::Mat A, B;
A.copyTo(B);
이렇게 하는 방법이 있다. A의 이미지 데이터를 B로 넘긴다는 뜻!
또 다른 방법은
cv::Mat A, B;
B = A.clone();
A의 이미지를 복제해서 B로 넣는 것..
근데 난 의미상으론 복사를 써야하기 때문에.. 첫번째 방법으로 썼다..
암튼 끝!
반응형
'오류 | 문제 > C++' 카테고리의 다른 글
WinRT/C++ 오류 'auto'을(를) 반환하는 함수를 정의되기 전에 사용할 수 없습니다. (0) | 2023.12.09 |
---|---|
C++ OpenCV Dlib cvtColor 이상한 오류 RGB > BGR > RGB... (0) | 2023.02.27 |
C++ Dlib dlib::deserialize (오류 예외가 발생함) (0) | 2023.02.01 |
C/C++ Visual Studio QT 한글 깨짐 / 한글 오류 (0) | 2023.01.26 |
C/C++ 'RuntimeLibrary'에 대해 불일치가 검색되었습니다. (0) | 2023.01.10 |