Если у меня есть изображение, как я могу получить значения каждого пикселя в этом изображении, используя matlab
Matlab - Как получить значения пикселей?
Спасибо.
Если у меня есть изображение, как я могу получить значения каждого пикселя в этом изображении, используя matlab
Matlab - Как получить значения пикселей?
Спасибо.
Изображения представляют собой матрицы (2D, если оттенки серого, 3D, если цветные) в MATLAB.
Вы можете использовать x(i,j)
для доступа к пикселю в местоположении (i,j)
в черно-белом изображении.
Если изображение окрашено, вы можете использовать x(i,j,:)
для доступа к значениям r, g, b в 3-векторах соответственно. Если вам нужны отдельные каналы, то вы можете использовать x(i,j,1)
для красных, например.
Вы можете прочитать this page, чтобы узнать больше.
Вы можете использовать reshape
извлечь все значения пикселей изображения в вектор со значениями пикселей:
frame = imread('picture.jpg');
frame_size = size(frame);
allpixels = reshape(frame, frame_size(1)*frame_size(2), frame_size(3))
Это может быть полезно, если вы хотите векторизации вашего кода Matlab (чтобы избежать for
цикла, проходит через каждый пиксель). Чтобы вернуть исходное представление изображения:
frame2 = reshape(allpixels, frame_size);
Как преобразовать координаты «запроса» в пиксели? Например, я хочу знать значения в пикселях (1,1) и (20,20). Как мне написать? –
, чтобы получить значение в pixel(1,1)
мы просто написать image(1,1)
.
Спасибо за ваш ответ. Как я могу получить индексы изображений? Как и при использовании следующей команды: 'p1 = I (0,0);', я получил: '??? Попытка получить доступ к I (0,0); индекс должен быть положительным целым числом или logical.' – Simplicity
Индексы начинаются с 1 и идут на длину измерения. Это не похоже на C. – petrichor
Получил, что вы имеете в виду. Но нет ли более практичного способа получить «все» значения пикселей без индекса по индексу? Тем более, что вы знаете несколько раз, что у вас может быть изображение с большим количеством пикселей, и будет очень трудоемкий доступ к каждому пикселю в отдельности. Как вы думаете? Спасибо – Simplicity