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

Мне нужно получить доступ к матрице изображения и отсканировать его сверху вниз и слева направо, потому что мне нужно сделать код для алгоритма маркировки подключенных компонентов. Но я не знаю, с чего начать?потому что я не знаю, как хранить матрицу?поскольку я новичок в matlab, Loop можно запустить как

[rows columns] = size(img);

for a=1:1:rows
    for b=1:1:columns

, но я не уверен, правильно ли это или нет?как мне нужно получить доступ к каждому значению пикселя и найти конкретное значение?как написать, если pixelvalue = 1, добавить 1 к нему?

Ответы [ 2 ]

3 голосов
/ 21 ноября 2011

В Matlab вам не обязательно использовать циклы для анализа значений матрицы. В этом простом случае вы можете использовать логическую индексацию (см. Различные методы индексации в Matlab ), чтобы найти конкретные значения в вашей матрице и изменить ее.

Для вашего особого случая вы хотите изменить только те пиксели, которые имеют значение 1, и установите это значение равным 2. Просто пишется:

img(img==1)=2;
0 голосов
/ 21 ноября 2011

читать файл

I = imread('image.png');

Если это изображение RGB, к каждому значению пикселя (при i и j) можно получить доступ, например:

r = I(i, j, 1);
g = I(i, j, 2);
b = I(i, j, 3);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...