使用MATLAB读取图片选定的区域亮度,更加像素点作为XY轴来绘制一个曲线图,X轴是像素点Y轴是亮度大小
时间: 2024-05-03 10:22:30 浏览: 176
以下是一个示例代码,它将读取一个JPEG图像,并允许用户选择一个区域。然后,它将在所选区域中的每个像素处计算亮度,并在图形窗口中绘制一个曲线图。
```
% 读取图像
img = imread('test.jpg');
% 显示图像
imshow(img);
% 选择区域
h = imrect;
position = wait(h);
xmin = round(position(1));
ymin = round(position(2));
width = round(position(3));
height = round(position(4));
xmax = xmin + width - 1;
ymax = ymin + height - 1;
% 提取所选区域
region = img(ymin:ymax, xmin:xmax, :);
% 计算亮度
gray = rgb2gray(region);
brightness = mean(gray, 2);
% 绘制曲线图
figure;
plot(brightness);
xlabel('Pixel');
ylabel('Brightness');
```
该代码使用imread函数读取名为“test.jpg”的JPEG图像。然后,它显示图像并允许用户选择一个区域。imrect函数用于创建矩形选择框,wait函数将使程序等待用户完成选择。然后,代码提取所选区域,并计算每个像素的亮度。rgb2gray函数将图像转换为灰度图像,mean函数计算灰度图像每行的平均值,并将结果存储在brightness向量中。最后,代码使用plot函数在图形窗口中绘制亮度曲线图。X轴为像素点,Y轴为亮度大小。
阅读全文