如果我有一张图片,我怎样才能获得该图片中每个像素的值matlab
谢谢。
图像是 MATLAB 中的矩阵(灰度为 2D,彩色为 3D)。
您可以使用它x(i,j)
来访问(i,j)
灰度图像中某个位置的像素。
如果图像是彩色的,您可以使用x(i,j,:)
分别访问 3 向量中的 r、g、b 值。如果您需要单独的通道,则可以使用x(i,j,1)
红色例如。
您可以阅读此页面以了解更多信息。
您可以使用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);
要获取值,pixel(1,1)
我们只需编写image(1,1)
.