Если у вас есть 2-мерное изображение с интенсивностью серого , сохраненное в матрице A
, вы можете установить нижнюю половину в черный цвет, выполнив следующие действия:
centerIndex = round(size(A,1)/2); %# Get the center index for the rows
A(centerIndex:end,:) = cast(0,class(A)); %# Set the lower half to the value
%# 0 (of the same type as A)
Для этого сначала нужно получить число строк в A
, используя функцию SIZE , разделить ее на 2 и округлить, чтобы получить целочисленный индекс около центра высоты изображения. Затем вектор centerIndex:end
индексирует все строки от центрального индекса до конца, а :
индексирует все столбцы. Все эти проиндексированные элементы установлены в 0 для представления черного цвета.
Функция CLASS используется для получения типа данных A
, так что 0 можно привести к этому типу с помощью функции CAST . Это может не понадобиться, хотя 0, вероятно, будет автоматически преобразовано в тип A
без них.
Если вы хотите создать логический индекс для использования в качестве маски, вы можете сделать следующее:
mask = true(size(A)); %# Create a matrix of true values the same size as A
centerIndex = round(size(A,1)/2); %# Get the center index for the rows
mask(centerIndex:end,:) = false; %# Set the lower half to false
Теперь mask
- это логическая матрица с true
(т.е. "1") для пикселей, которые вы хотите сохранить, и false
(т.е. "0") для пикселей, которые вы хотите установить на 0. Вы можете установить больше элементов от mask
до false
, как вы хотите. Затем, когда вы хотите применить маску, вы можете сделать следующее:
A(~mask) = 0; %# Set all elements in A corresponding
%# to false values in mask to 0