MATLAB - Создать img из массива линейных индексов + цвет

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

[1 10 99 1562]

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

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

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

Термин «линейные индексы» не подходит для того, что вы говорите. Но я понимаю, о чем вы спрашиваете

Sardar Usama 01.09.2018 10:35

Как бы назвать эти типы индексов? Я создал их с помощью sub2ind, поэтому предположил, что создаю линейные индексы? Также не могли бы вы помочь мне установить значения

Bobs 01.09.2018 10:38

Могу я получить дополнительную информацию, пожалуйста

Bobs 01.09.2018 10:45

Наверное, лучше для этого подойдет термин «Линейные показатели одноцветного канала изображения».

Sardar Usama 01.09.2018 11:06
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
4
61
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

С петлей:

[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 

Другие вопросы по теме