Как создать матрицу, которая содержит выбранный набор пикселей из другой матрицы на основе третьей? - PullRequest
0 голосов
/ 18 мая 2018

У меня есть матрица оттенков серого A с определенными значениями черного цвета (т. Е. Значения пикселей равны 0).У меня есть другая матрица серого B, которая имеет тот же размер, что и A.

Я хочу создать матрицу C, которая содержит только те значения B, где A равно 0, а остальные значения в B становятся белыми,Например,

A = [0 35 0 0 88];
B = [22 3 34 99 4];

Матрица C должна быть

C= [22 255 34 99 255];

Я пытаюсь использовать логическое индексирование следующим образом, но в нем есть ошибки.

C(A==0)=B;
C(A~=0)=255;

Как изменить вышеприведенную строку для получения желаемых результатов?

1 Ответ

0 голосов
/ 18 мая 2018

Вы пытаетесь присвоить целое значение B меньшей матрице из тех мест, где A==0.

Чтобы использовать только правильное количество значений для присвоения, первая строка должна быть

C(A==0)=B(A==0);

Следует отметить, однако, что тот же результат можетполучить, просто установив для всех C соответствующие значения B (C = B), а затем просто изменив те, где A~=0, как во 2-й строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...