Я читаю большие изображения FITS, используя библиотеку CFITSIO для C. Сначала фактическое изображение / пиксели не считываются. Только когда необходимо выполнить какую-либо операцию (скажем, в среднем несколько изображений)изображение загружается в память в виде двойного массива.Я представляю каждое изображение как объект типа ImageListing (пользовательский класс).Этот класс знает, как читать / записывать подходящие файлы.
Для представления серии изображений я использую NSMutableArray внутри другого класса, называемого ImageStacker.ImageStacker реализует методы, которые могут усреднять, вычитать, суммировать изображения.Очевидно, что для выполнения этих операций этому классу необходим доступ к необработанным пикселям, которые он получает, отправляя сообщение returnPixelsFrom:(NSInteger)Row
.
У меня вопрос, должен ли я:
1) Читатьпикселей в вышеупомянутом методе, но считайте их в массив C (типа double), который передается по ссылке.
ИЛИ
2) Должен ли я читать пиксели в локальный массив C, но затем скомпонуйте объект NSData, используя dataWithBytes:length
, и верните этот объект из метода.
Какое преимущество имеет вариант 2 над 1?Имейте в виду, что при усреднении / добавлении пикселей мне все равно придется использовать массив C, поэтому не лучше ли продолжать использовать для этой цели чисто C-массивы?