2

如果我有一张图片,我怎样才能获得该图片中每个像素的值matlab

谢谢。

4

3 回答 3

10

图像是 MATLAB 中的矩阵(灰度为 2D,彩色为 3D)。

您可以使用它x(i,j)来访问(i,j)灰度图像中某个位置的像素。

如果图像是彩色的,您可以使用x(i,j,:)分别访问 3 向量中的 r、g、b 值。如果您需要单独的通道,则可以使用x(i,j,1)红色例如。

您可以阅读此页面以了解更多信息。

于 2012-12-19T15:51:10.597 回答
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);
于 2012-12-28T15:44:54.697 回答
0

要获取值,pixel(1,1)我们只需编写image(1,1).

于 2017-01-05T04:44:21.993 回答