У меня есть 3D-изображение, которое я хочу использовать в качестве цветовой карты. У меня есть поток данных в реальном времени, и в зависимости от моего текущего положения я хочу, чтобы мой график отображал определенный цвет на основе моего 3D-изображения.
Я сделал это ранее с успехом, используя изображение размером 1080x1920
(2D-изображение), используя следующий код для преобразования его в изображение.
Color=double(imresize(RGBparam.image,[81 144]))/255;
затем нарисуйте его, установив свои данные (я уже создал рисунок ранее... этот код не должен иметь значения), где size(myData(:,:1))
выводит 81x144... Ydata и Zdata также имеют одинаковые размеры.
set(Fig.figim, 'CData', Color);
set(Fig.figim, 'XData', myData(:,:,1) + positionX)
set(Fig.figim, 'YData', myData(:,:,2) + positionY);
set(Fig.figim, 'ZData', myData(:,:,3) + positionZ);
Так что работало нормально! Теперь у меня есть новое 3D-изображение. Размер изображения 512x512x351
. Я пытался сделать тот же код, но он не работает. Я пробовал это:
Color=double(imresize(DICOMparam.Vd,[81 144]))/255;
Затем я пытаюсь построить такой сюжет
set(Fig.figim, 'CData', Color);
set(Fig.figim, 'XData', myData(:,:,1) + positionX)
set(Fig.figim, 'YData', myData(:,:,2) + positionY);
set(Fig.figim, 'ZData', myData(:,:,3) + positionZ);
Но затем я получаю сообщение об ошибке: «Цвет должен быть матрицей M на N или массивом M на N на 3».
Теперь я попытался что-то изменить, так что он оказался массивом M на N на 3, но, прежде всего, я не хочу этого... Я хочу сохранить больше, чем просто 3 образца z- размер моей цветовой карты... и, во-вторых... она все равно выдает мне кучу ошибок. Итак, в заключение, я просто хочу, чтобы эта трехмерная карта цветов работала, когда я рисую свои данные, которые имеют компоненты x, y и z. Спасибо за помощь, дайте знать, если что-то непонятно!