#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 (кнопки), чтобы сделать снимок и сохранить в фотопленке, затем загрузить этот снимок в приложение для обработки снимка экрана.
Надеюсь, это поможет!