it-swarm.com.ru

учебник по обработке изображений Android?

Кто-нибудь знает какие-нибудь хорошие учебники по обработке изображений для Android? Я новичок в Android, и я пишу приложение, которое накладывает эффект на растровое изображение. Я могу найти множество учебников на Java, но Android не поддерживает AWT. Я хотел бы манипулировать пикселями в растровом изображении, просто используя Android SDK, например, деформации, рыбий глаз и т. д. Я могу получить доступ к пикселям и изменить их цвет, но я не слишком хорош в преобразованиях и не уверен, с чего начать. 

23
turtleboy

Проверьте это (прокрутите вниз после [Основы] 29):

http://xjaphx.wordpress.com/learning/tutorials/

Имеет несколько отличных уроков, таких как:

  • Средний эффект удаления
  • Гладкий эффект
  • Эффект тиснения
  • Эффект гравировки
  • Повысьте интенсивность цвета
  • Закругленный угол изображения
  • Водяной знак на лету
  • Переворот изображения/Зеркальное отображение
  • Замена цвета пикселей
  • Оттенок цвета
  • Блоха/шумовой эффект
  • Черный фильтр (увеличение темноты)
  • Эффект снега
  • Фильтр затенения
  • Фильтр насыщения
  • Оттенок Фильтр
  • Эффект отражения изображения
  • Нарисуйте текст на кривой
18
Oded Breiner

Вы также можете проверить JavaCV, который предоставляет вам Java-объекты с привязками к opencv lib . Таким образом, вам не нужно делать никакого программирования на c/c ++, вы можете делать все напрямую в Java и получать доступ к функциям из opencv.

Google Code Project

Ответьте на свой вопрос:

Например, возьмите цилиндрическую проекцию: посмотрите на изображение -

image

(извините, я не могу публиковать фотографии) это взято из книги Szeliskis ( http://szeliski.org/Book/ ) . В конце концов, у вас есть отношение 

x'=s*tan⁻¹(x/f) 

а также 

y'=s*(y/sqrt(x²+f²)) 

где f - это фокусное расстояние камеры, а s - радиус цилиндра, вы можете использовать f = s. Теперь, чтобы получить это в циклах, вот некоторый псевдокод: 

%% xMitte , yMitte are the coordinates for the point in the middle
for yNeu =1: height
   for xNeu =1: width
      dx = xNeu - xMitte ; %% X relativ to Origin
      dy = yNeu - yMitte ; %% Y relativ to Origin
      theta = atan(dx / f);
      h = dy / sqrt(dx ^2+f^2);
      x = (f * theta) + xMitte ;
      y = (f * h) + yMitte ;
      BildNeu (xNeu ,yNeu) = BildAlt (x, y);
   end
end

BildNeu - это новое изображение, этот массив имеет тот же размер, что и BildAlt (исходное изображение).

Линия с BildNeu и BildAlt в конце внутреннего цикла может выглядеть так:

/** returns the color value of that pixel **/
CvScalar pixel = cvGet2D(originalImage, i, j);
/** writes the new color value of that pixel **/
cvSet2D(destinationImage, y, x, pixel);
8
rac2030

OpenCV Android предпочтительнее из-за простоты использования на платформе Android, хотя возможны ограничения. Вот несколько ссылок, которые могут помочь:

1. Лучший способ научиться обрабатывать изображения на платформе Android - через реализацию. Попробуйте запустить и понять существующие образцы OpenCV4Android на Android Studio/Eclipse. Они доступны на https://github.com/joaopedronardari/OpenCV-AndroidSamples .

Описание каждого примера доступно на странице примеров OpenCVAndroid. Смешанная обработка, управление камерой, манипуляции изображениями и обнаружение цветных пятен связаны с предварительной обработкой и манипуляциями с изображениями. Они включают в себя:

Предварительный просмотр RGBA и GREY

Canny (Обнаружение края)

Поиск функций

Цветовые эффекты

Гистограммы

Сепия

Фильтр Собеля

Увеличить

Пикселизация

Пастеризация

Трансформация водосбора

Маркеры (обнаружение BLOB-объектов) 

  1. Так как вы будете работать на платформе Java, вам пригодятся учебники по OpenCV Java.

  2. http://web.stanford.edu/class/ee368/Android/ есть примеры проектов.

4. Проверьте Android Arsenal, для библиотек обработки изображений.

Примечание. Объект Mat необходимо преобразовать в объект Bitmap, чтобы отобразить его на экране устройства (ImageView). 

3
Sukriti

Возможно, у вас будет какой-то успех с OpenCV Java-привязками . Кроме этого, я не знаю, что действительно поможет.

0
Robert Massaioli