Indexing a 3d matrix with a 2D matrix
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a logical mask of locations I want to image. I am using bwconncomp to get the indices of the pixels in each of these objects. What I can't figure out is how to take this information and pull out the 3 dimensional vector for each of these pixels from my larger 3d matrix. I thought I could use ind2sub to convert the pixel locations then do something like the following, but this did not work.
I can solve this with a for loop and just loop through each plane of my 3d matrix, but there must be a more elegant solution out there. Thanks for any advice.
[pixelSubs(:,1),pixelSubs(:,2)]=ind2sub(cc.PixelIdList{objectNum});
threeDVectors=threeDMatrix(pixelSubs(:,1),pixelSubs(:,2),:);
0 commentaires
Réponses (1)
Walter Roberson
le 20 Août 2016
idx = cc.PixelIdList{objectNum};
pane_size = size(threeDMatrix,1) * size(threeDMatrix,2);
threeDVectors(:,1) = ThreeDMatrix(idx);
threeDVectors(:,2) = ThreeDMatrix(idx + pane_size);
threeDVectors(:,3) = ThreeDMatrix(idx + 2 * pane_size);
0 commentaires
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!