画像がある場合、その画像の各ピクセルの値を取得するにはどうすればよいですかmatlab
ありがとう。
MATLAB では、イメージは行列 (グレースケールの場合は 2D、カラーの場合は 3D) です。
を使用して、グレースケール イメージ内のx(i,j)
位置にあるピクセルにアクセスできます。(i,j)
画像が色付けされている場合、 を使用x(i,j,:)
して、それぞれ 3-ベクトルの r、g、b 値にアクセスできます。個別のチャネルが必要な場合は、x(i,j,1)
たとえば for red を使用できます。
詳細については、このページをお読みください。
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);