Я очень новичок в opencv4android и пытаюсь загрузить изображение PNG в оттенках серого с глубиной 16 бит.
Я старался:
Mat mat2DImg = Utils.loadResource(getBaseContext(), R.drawable.image, Highgui.CV_LOAD_IMAGE_GRAYSCALE);
Но png читается как 8-битный со значениями в [0,255]. Я попробовал флаг CV_LOAD_IMAGE_ANYDEPTH, но то же самое. Я пытался создать альфа-канал или загрузить изображение как необработанное, но это не сработало.
Я также попытался скопировать изображение на устройство и прочитать его с помощью imread, как показано ниже, надеясь, что imread сможет загрузить 16-битный канал:
java.lang.String filename = "/storage/emulated/0/image.png";
Mat mat2DImg = Highgui.imread(filename, 0);
Когда я проверяю file.exists()
, он действительно существует. Возвращенный Mat
не нулевой, но пустой.
Может ли кто-нибудь предложить способ правильно загрузить изображение?