Обработка изображений на iPhone - PullRequest
3 голосов
/ 22 января 2010

Я хотел бы применить обработку изображений к снимкам, сделанным на iPhone. Эта обработка будет включать в себя 2D матричные свертки и т. Д.

Боюсь, что производительность с вложенным NSArrays будет довольно плохой. Как правильно управлять пиксельными изображениями? Должен ли я просто использовать массивы C, выделенные с помощью malloc?

Ответы [ 4 ]

3 голосов
/ 23 января 2010

Вы смотрели на Quartz 2D движок, доступный в iPhone SDK? Или, возможно, Core Graphics? У Apple есть хороший обзорный документ , описывающий все различные технологии обработки изображений, доступные на iPhone. К сожалению, на iPhone пока нет ничего лучше, чем ImageKit.

1 голос
/ 10 февраля 2011

Я предлагаю использовать библиотеку обработки изображений OpenCV, так как она содержит хорошо оптимизированные алгоритмы практически для всего, что вы хотите. OpenCV будет определенно быстрее, чем ручная обработка с NSArray. Но есть один существенный недостаток - библиотека OpenCV написана на C / C ++, поэтому вам придется конвертировать NSImage в собственный формат изображений OpenCV для выполнения обработки. Но действительно легко гуглить, как это сделать. Я использую OpenCV в своем собственном проекте для iPhone, вот небольшая инструкция по сборке OpenCv для IPhone: http://computer -vision-talks.com / 2010/12 / building-opencv-for-ios /

0 голосов
/ 23 января 2010

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

0 голосов
/ 23 января 2010

Да, вы бы использовали массив C, поскольку именно так вы в любом случае получаете данные пикселей.

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

...