オブジェクト (色付きの四角形) を検出するために openCV ライブラリを使用しています。私の問題はフレームレートが低いことです。私のデバイスは 4 コアの Samsung Galaxy S3 です。
これは、フレームレートを劇的に低下させる私のコードの一部です:
public void morphOps(Mat filteredFrame)
{
erosion_size = morphSeekBars[0].getRealProgress();
dilation_size = morphSeekBars[1].getRealProgress();
//create structuring element that will be used to "dilate" and "erode" image.
erodeElement = Imgproc.getStructuringElement( Imgproc.MORPH_ERODE, new Size(2 * erosion_size + 1, 2 * erosion_size + 1), new Point(erosion_size, erosion_size));
Imgproc.erode(filteredFrame, filteredFrame, erodeElement);
//dilate with larger element so make sure object is nicely visible
dilateElement = Imgproc.getStructuringElement( Imgproc.MORPH_RECT, new Size(2 * dilation_size + 1, 2 * dilation_size + 1), new Point(dilation_size/2, dilation_size/2));
Imgproc.dilate(filteredFrame, filteredFrame, dilateElement);
Imgproc.dilate(filteredFrame, filteredFrame, dilateElement);
}
ご覧のとおり、1 つの浸食操作と 2 つの拡張操作を行い、640x480 の解像度で約 12 fps を取得しています... 何かアイデアはありますか?