我有以下問題。我必須在非常高維的圖像(182MP)中計算密集的SIFT興趣點。當我在完整的圖像中運行代碼時,Matlab總是突然關閉。所以我決定在圖像補丁中運行代碼。在matlab中有兩個輸出變量的集合
代碼
我試圖使用blocproc在Matlab調用執行緻密SIFT興趣點檢測這種方式的C++函數:
fun = @(block_struct) denseSIFT(block_struct.data, options);
[dsift , infodsift] = blockproc(ndvi,[1000 1000],fun);
其中dsift是SIFT描述符(矢量)和infodsift具有興趣點的信息,例如x和y座標。
問題
的問題是,blocproc只允許一個輸出,但我想兩個輸出。當我運行代碼時,matlab給出了以下錯誤。
Error using blockproc
Too many output arguments.
有我這樣做的方法嗎?
謝謝你的幫助,這可以工作。我的新問題是,dsift和infodsift是矩陣。我可以在此循環內使用vertcat將結果保留在兩個最終的矩陣中。那麼,如何初始化將在循環之前接收結果的兩個矩陣?如何刪除這些與所需值串聯的矩陣的初始值?你有什麼想法做到這一點?再次感謝。 – mad
這些矩陣的維數是多少?它們有沒有像'smallImage'一樣的尺寸? – Floris
我只知道矩陣行數,列數取決於算法找到的興趣點數。行數爲128行,數據行數爲5行。謝謝。 – mad