Използвам opencv в Android Studio, за да увелича пропорцията на червения цвят в изображение. Но когато стартирам функцията след около 30 пъти, програмата се срива и показва грешката.
OpenCV Error: Insufficient memory(Failed to allocate *****bytes)
Търсих много свързани въпроси и много хора казват, че add Mat.release() може да реши този проблем. Добавих Mat.release в моята функция, но това не помага. Програмата все още се срива, след като я стартирам над 30 пъти.
Ето моя код. Някой знае ли как да се реши този проблем?
public void addRedColor(int red){
Mat img = new Mat();
Utils.bitmapToMat(src, img);
List<Mat> bitplane = new ArrayList<>(img.channels());
Core.split(img, bitplanes);
Mat redChannel = new Mat();
Core.add(bitplane.get(0), new Scalar(red), redChannel);
bitplane.set(0, redChannel);
Core.merge(bitplane, img);
// release the Mat
img.release();
bitplane.get(0).release();
bitplane.get(1).release();
bitplane.get(2).release();
redChannel.release();
}
new
повикване трябва да има съответно извикване наdelete
. Имайте предвид, чеrelease
е различно нещо и освобождава само някои вътрешни полета на Mat - person Dmitrii Z.   schedule 05.02.2018