カスタムグレースケール変換メソッドを書いています:
public Mat grayScaleManual(Mat imageMat){
Mat dst = new Mat(imageMat.width(), imageMat.height(), CvType.CV_8UC1);
double[] bgrPixel;
double grayscalePixel;
for(int y = 0; y < imageMat.height(); y++){
for(int x = 0; x < imageMat.width(); x++){
bgrPixel = imageMat.get(y, x);
grayscalePixel = (bgrPixel[0] + bgrPixel[1] + bgrPixel[2])/3;
imageMat.put(y, x, grayscalePixel);
}
}
return imageMat;
}
Mat
OpenCV4Android ライブラリのクラスです。OpenCV には組み込みのグレースケール メソッドがあることは知っていますが、グレースケールの実装と OpenCV の実装を比較したいと思います。
このメソッドは、常にガベージ コレクターを呼び出します。未使用のオブジェクトがあるとガベージ コレクターが呼び出されることはわかっていますが、コード内に未使用のオブジェクトはないと思います。
このコードがガベージ コレクターを呼び出し続けるのはなぜですか?