Используя Objective-C, есть ли способ сравнить два изображения и получить значение% разницы? - PullRequest
2 голосов
/ 13 октября 2011

Используя Objective-C, есть ли способ сравнить два изображения и получить значение% разницы?

Например, одно изображение будет иметь и X в нем.Другое изображение будет иметь X в нем.И третий будет иметь H в нем.Все тот же шрифт / цвет.

Очевидно, что X и X будут иметь очень небольшую разницу в%.% Между X и H будет очень большим.

Как мне написать функцию, которая может вернуть мне разницу в%?

Ответы [ 4 ]

7 голосов
/ 13 октября 2011

Вам нужно будет очень тщательно подумать о том, какие различия вас волнуют.

Выполнение попиксельного сравнения изображений одинакового размера не будет слишком сложным.Присвойте значение ошибки каждому пикселю, а затем каким-то образом объедините различия, чтобы получить одну фигуру.

Масштабирование одного или другого изображения, если они имеют разные размеры, но одинаковое соотношение сторон, также довольно простое.

Однако, крайние случаи становятся хитрыми очень быстро.Например, что произойдет, если два ваших символа X сместятся, так что один находится слева от изображения, а другой справа?Должны ли они быть как-то «похожими»?

Кроме того, сравнивая Н с Х, вы хотите получить высокий балл - но как тогда вы оценили бы Х по сравнению с цветным изображением бабочки?Еще выше, предположительно, но насколько выше?

Какой-то тип обучения нейронной сети может помочь вам, где вы решаете, какие значения вы бы присваивали себе для некоторых выборочных сравнений, а затем обучаете сеть возвращать эти значения дляваши образцы изображений.Но это не тривиально для кода.

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

3 голосов
/ 13 октября 2011

Вы можете использовать OpenCV (Open Source Computer Vision) библиотеку в iphone. Этот вопрос хорошо обсуждает алгоритмы сравнения изображений. Обработка изображений на iPhone эта ссылка может быть полезной.

2 голосов
/ 13 октября 2011

API не имеет ничего похожего на это.

Если вы хотите сделать это, вам придется свернуть свою собственную или использовать внешнюю библиотеку.

Я бы предложил найти внешнюю библиотеку, поскольку это не тривиальная задача.

Например, у вас есть два изображения с одинаковым шрифтом и цветом. Изображения одинакового размера? Если нет, считаются ли они на 100% разными? Если вы измените размеры изображений, чтобы соответствовать, разница будет намного больше, чем это было бы в противном случае.

Или, скажем, у вас есть два изображения с одинаковым шрифтом и размером изображения, но цвета разные. Как бы вы оценили это в процентах? Совершенно разные или частично разные? Если вы скажете, что цвет только частично отличается, то как бы вы получили 100% разницу?

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

0 голосов
/ 08 декабря 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...