iOS: сравните фрагмент изображения с библиотекой опций

#objective-c #ios #image #image-processing #comparison

#objective-c #iOS #изображение #обработка изображений #сравнение

Вопрос:

Я в основном пытаюсь понять, как взять фрагмент изображения, скажем, скриншот домашнего экрана iPhone, вырезать первый значок и сравнить его с заданным массивом изображений в библиотеке. Любая помощь о том, с чего начать?

Ответ №1:

Я не программист для iPhone, но я мог бы предложить несколько вещей:

  • Обнаружение функций SURF, реализованное в OpenCV, должно помочь вам в этом
  • Есть хорошая статья об использовании OpenCV в коде Objective-C.

Быстрым и грязным способом может быть использование режима наложения различий, который должен возвращать разницу между 1-м изображением (вверху) и 2-м изображением (внизу). Если разницы нет, результат будет полностью черным. Таким образом, чем больше черных пикселей в результате различия, потенциально, тем больше сходства между сравниваемыми изображениями.

Я не разработчик iOS, поэтому я не знаю, существует ли библиотека изображений, которая поставляется с sdk, или есть бесплатная библиотека с открытым исходным кодом для базовой обработки изображений. Тем не менее, это должно быть тривиально для реализации:

например

 - (int)difference((int)topPixel,(int)bottomPixel)
{
    return abs(topPixel-bottomPixel);
}
  

Примечание: Синтаксис может быть неправильным 🙂

HTH

Ответ №2:

Это может не помочь вам сделать снимок экрана начального экрана iOS… Но в этих статьях показано, как делать снимки из приложения UIKit:

https://developer.apple.com/library/prerelease/ios/#qa/qa1703/_index.html

https://developer.apple.com/library/prerelease/ios/#qa/qa1714/_index.html

Возможно, вы могли бы дать указание пользователю нажать home-power (кнопки), чтобы сделать снимок и сохранить в фотопленке, затем загрузить этот снимок в приложение для обработки снимка экрана.

Надеюсь, это поможет!