MATLAB - Создать img из массива линейных индексов + цвет - PullRequest
0 голосов
/ 01 сентября 2018

У меня есть пустое img, содержащее все нули размера x, y, 3. У меня есть массив линейных индексов, например

[1 10 99 1562]

У меня есть цвет в виде 1, 1, 3 двойного массива, например

color(:,:,1) = 100
color(:, :, 2) = 200
color(:,:,3) = 100

Как я могу установить все индексы IMG для этого цвета?

1 Ответ

0 голосов
/ 01 сентября 2018

с петлей:

[r, c] = ind2sub(size(A(:,:,1)),ind); %Getting corresponding row and column subscripts
for k = 1:numel(ind)
    A(r(k),c(k),:) = color;           %Changing each of them to desired color
end

или векторизованное решение:

%Creating a mask
mask = false(size(A(:,:,1)));   mask(ind) = true;
%Transferring the color to the mask
A = mask.*color;    %Impl.exp., use A = bsxfun(@times,mask,color) in <R2016b 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...