如何更改图像像素值?

时间:2014-11-18 07:32:22

标签: matlab image-processing coding-style pixel pixels

我有一个图像,我想为每个像素位置(x,y)分配不同的值,如下所示:

v(x,y)= a(y ^ 2)+ b(y)+ c

其中a,b和c是根据经验确定的参数。

我怎样才能在matlab中做到这一点?我的意思是如何更改图像的像素值呢?

2 个答案:

答案 0 :(得分:2)

您似乎只想根据y坐标更改图像值,因此请创建一个新的矩阵y,如下所示:

y = (1:height)' * ones(1,width);

其中高度和宽度是图像的大小:

[height, width] = size(v);

然后创建您的图片v

v = a.*(y.^2) + b.*y + c;

如果abc是单个值或与y大小相同的矩阵,则此方法有效。

希望这就是你所要求的。

答案 1 :(得分:1)

说到图像和像素在你的情况下是误导(似乎你只是在谈论矩阵)。尝试运行此代码:

a = 1; b = 2; c = 3;
x = 1:100; % x and y define from 1 to the value for the size of your matrix
y = 1:100;
[X, Y] = meshgrid(x,y);

然后,您可以使用以下代码获取值V:

V = a * Y.^2 + b * Y + c;

用以下方式绘制:

figure;
imagesc(V);

干杯