怎样用matlab输出一幅图像某一行的灰度值

matlab输出图像中任意一行的灰度值,横坐标是在该图像中的位置,谢谢

function greyValue = calcRowGrey(pic)
%备注:输入值为读取文件后的图像数据,可以是m行 n列 或者是[m*n*3] (彩色图片)

% 直接计算灰度值,如果是黑白图像,计算结束
greyValue = sum(greyValue ,2);
%判断如果是彩色图像
if length(size(greyValue )>2
greyValue = sum(greyValue ,3);
end追问

不是很明白,我就想得到像下图类似的结果右面的图输出的是红线那一行的灰度值

追答

原来你要的是这个东西啊。好吧。那就更加简单了,如果你有一个图像数据 f 大小是 [m*n]的
那么如果你需要x 行的灰度值

picGrey = f(x,:);

就可以了

追问

能给个完整的程序么,比如说rgb= imread('000.jpg');再怎么写,最后输出语句又要怎么写呢,程序小白,麻烦能给一个完整的程序,谢谢

追答

程序的设计是需要根据你的需求设计的,如下为例

rgb= imread('000.jpg');

% 如果是彩色图像,那么转成灰度
if length(size(rgb)) ==3
rgb = sum(rgb,3);

end
% 如果你需要的是k行灰度值
lineGrey = rgb(k,:);

追问

我想出图像,请问输出图形的语句怎么写呢,谢谢

追答

figure;
plot(lineGrey);

温馨提示:答案为网友推荐,仅供参考