반응형
Unity에서 Texture의 특정 영역을 Crop하거나, 조작하기 위해서는 Texture 객체를 다른 타입으로 변환해야 하는 경우가 생깁니다.
Example : Image crop
Crop Process:
Texture -> Texture2D -> Mat (OpenCV Asset) -> Crop(SubMat) -> Texture2D -> Texture
Issue:
Texture -> Texture2D 과정에서, 생성한 Texture2D 객체가 자동으로 Unload되지 않아, Garbage Collection이 돌지 않고, 메모리에 계속 누적)
Solution:
1. Resources.UnloadUnusedAssets() 함수 호출
즉시 해제
2. DestroyImmediate(_texture2d)
1번에 비해, 더빠르다.
Source Example:
Mat mat = new Mat(tex2d.width, tex2d.height, CvType.CV_8UC4);
//texture to mat
mat = OpenCVExtension.instance.TextureToMat(tex2d);
//adjust roi
mat = OpenCVExtension.instance.SubMat(mat,m_size,ofs);
//*** Texture2D 죽이기 테스트
DestroyImmediate(tex2d);
반응형