2014-11-18 3 views
1

У меня есть изображение, и я хочу присвоить другое значение для каждого местоположения пикселя (х, у) в следующей конфигурации:Как изменить значения пикселей изображения?

у (х, у) = а (у^2) + В (у) + с

где a, b и c - параметры, определенные эмпирически.

Как я могу это сделать в Matlab? Я имею в виду, как я могу изменить пиксельные значения изображения там?

+0

ли ваш image 'v' имеют одно значение для каждого пикселя, или это 3 значения, например, с изображением RGB? – Ayb4btu

+0

Это 3 значения, я понял, как заставить его работать на него. Спасибо – ABC2013

ответ

2

Похоже, вы только хочет, чтобы изменить значение изображения на основе координаты у, таким образом, создать новую матрицу y так:

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

, где высота и ширина размер вашего изображения:

[height, width] = size(v); 

затем создать образ v:

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

Это будет работать, если a, b и c являются одиночными значениями или матрицами того же размера, что и y.

Надеюсь, это то, о чем вы просили.

+0

Извините, но что такое высота и ширина? и я не понимаю, как это изменит исходные значения изображения? – ABC2013

+0

@ user2833205 высота и ширина - ваши размеры изображения. Из вашего вопроса вы, видимо, только меняете значения «v' пикселей» на основе его 'y'-координаты. – Ayb4btu

+0

Он работает, спасибо! – ABC2013

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); 

Приветствиях

Смежные вопросы