我正在使用C的CFITSIO庫讀取大型FITS圖像。首先,實際圖像/像素不被讀入。只有當某種操作需要完成時(比如平均幾張圖像)將圖像作爲雙數組加載到內存中。我將每個圖像表示爲一個ImageListing類型的對象(一個自定義類)。這個類知道如何讀寫適合文件。NSData適用於大型c數組嗎?
爲了表示一系列圖像,我在另一個類中使用了一個名爲ImageStacker的NSMutableArray。 ImageStacker實現了可以平均,減去,求和圖像的方法。顯然,爲了完成這些操作,這個類需要訪問原始像素,它通過發送消息returnPixelsFrom:(NSInteger)Row
獲得。
我的問題是,應當I:
1)閱讀在上述提到的方法中的像素,但是它們讀成C陣列(double型)多數民衆贊成通過引用傳遞。
OR
2)I應該閱讀像素劃分爲本地C數組,但然後撰寫使用dataWithBytes:length
一個NSData對象和從所述方法返回該對象。
選項2對1有什麼優勢?請記住,當平均/添加像素時,我將不得不使用C數組,所以爲此目的繼續使用純粹的C數組不是更好嗎?
我真的很好奇 - 是什麼指向你使用NSData的呢? – 2011-04-05 08:07:19
讀取NSData類參考給我的印象是,如果我們想要在Cocoa中處理原始數據,這是一條路。但我同意你的看法,對我來說這似乎是一個毫無意義的練習,因爲我所做的只是將NSData對象從數據中提取出來,然後在需要處理時再次分解它。感謝您的迴應。 – saad 2011-04-05 12:58:52