Граничное обнаружение Sobel в Android

Как часть приложения, которое я разрабатываю для Android, я хотел бы показать пользователю обнаруженную краем версию изображения, которое они взяли (что-то подобное примеру ниже).

alt text

Для достижения этого, я смотрел на оператор Sobel и как реализовать его в Java. Однако многие примеры, которые я нашел, используют объекты и методы, найденные в AWT (как этот пример), который не является частью Android.

Мой вопрос затем действительно, Android обеспечивает какие-либо альтернативы функциям AWT, которые использовались в вышеупомянутом примере? Если бы мы должны были переписать тот пример, просто пользующийся библиотеками, встроенными в Android, как мы пошли бы об этом?

8
задан Community 8 February 2017 в 14:26
поделиться

1 ответ

, поскольку у вас нет BufferedImage в Android, вы можете выполнять все основные операции самостоятельно:

Bitmap b = ...
width = b.getWidth();
height = b.getHeight();
stride = b.getRowBytes();
for(int x=0;x<b.getWidth();x++)
  for(int y=0;y<b.getHeight();y++)
    {
       int pixel = b.getPixel(x, y);
       // you have the source pixel, now transform it and write to destination 
    }

как видите, это охватывает почти все, что вам нужно для портирования этого примера AWT. (просто измените функцию "convolvePixel")

3
ответ дан 5 December 2019 в 17:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: