MATLAB 图像处理 灰度图 将图像中某一行或者某一列的灰度值 绘制成一条曲线

本文介绍了一种使用MATLAB从灰度图像中提取一列像素值并将其绘制成曲线的方法。通过读取图像文件,展示原始图像,并提取第一列的像素值进行绘图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将这些灰度值保存成一个矩阵A

A = imgdata(:,1);%第一列的所有数据

若是仅仅画数据,直接用plot(A)

例子如下:

filename = 'I.jpg';

imgData = imread(filename);


imshow(imgData);%该函数可以用来显示已经读入的数据


A = imgData(:,1);


plot(A,'-');%画出图像数据


结果如下:



### MATLAB 中在 128x128 的灰度图像上绘制正弦曲线的方法 #### 创建并初始化灰度图像 为了创建一个 128x128 大小的灰度图像,在 MATLAB 中可以使用 `zeros` 函数来生全黑背景的矩阵。这代表了一个完全黑暗的初始状态。 ```matlab imageSize = 128; grayImage = zeros(imageSize, imageSize); ``` #### 定义正弦波参数 定义用于控制正弦波形状的关键变量,比如振幅、频率和相位偏移等属性。这些设置决定了最终图形的具体形态。 ```matlab amplitude = 64; % 振幅设为一半的最大亮度值 (假设最大亮度为127) frequency = 0.05; % 频率影响周期长度 phaseShift = pi/2; % 初始相位角可选,默认90度即pi/2 ``` #### 计算正弦函数对应的像素强度 遍历每一列计算该位置处应该具有的亮度等级,并将其赋给相应的行向量元素;这里采用逐行填充的方式构建整个二维平面内的变化趋势[^3]。 ```matlab [x, y] = meshgrid(1:imageSize, 1:imageSize); sineWaveIntensity = amplitude * sin(frequency*x + phaseShift) + amplitude; % 将负数转换零,因为图像中的最小亮度应该是0而不是负数 sineWaveIntensity(sineWaveIntensity < 0) = 0; ``` #### 显示带有正弦图案的灰度图像 最后一步是利用 `imshow()` 或者其他类似的绘图命令展示经过上述处理得到的新图像数据结构。 ```matlab figure; imshow(uint8(sineWaveIntensity), []); title('Sine Wave on a Gray Background'); colormap(gray); colorbar; ``` 通过以上步骤可以在指定尺寸的空白画布之上叠加一条由数学表达式决定轮廓线条,从而形视觉效果独特的艺术作品或是科学研究所需的测试样本[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值