Я использую OpenCv для разработки приложения для рисования на Android. Прямо сейчас я создаю Mat, преобразовываю его в растровое изображение и загружаю в ImageView. Когда пользователь щелкает этот ImageView, я инвертирую мат (как элементарный тест рисования).
final Mat mat = new Mat(1000, 1000, CvType.CV_8UC3, Scalar.all(0));
Bitmap bitmap = createBitmap(1000, 1000, Bitmap.Config.RGB_565);
Utils.matToBitmap(mat, bitmap);
ImageView imageView = (ImageView) findViewById(R.id.touchImageView);
imageView.setImageBitmap(bitmap);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
invertMat(mat.getNativeObjAddr());
}
});
//and in native...
extern "C" JNIEXPORT jstring JNICALL
Java_com_poppy_drawing_DrawingActivity_invertMat(
JNIEnv *env,
jobject instance,
jlong matNativeAddress) {
Mat &mat = *(Mat *) matNativeAddress;
bitwise_not(mat, mat);
}
Вылетает. Как создать коврик, загрузить данные в просмотр изображений, а затем выполнить собственную обработку этих данных при обновлении просмотра изображений при редактировании данных?