Matlab - заменить последовательный пиксель на пиксель слева - PullRequest
1 голос
/ 13 мая 2011

Итак, я квантовал изображение в градациях серого с четырьмя квантованными значениями.Я пытаюсь сохранить первый пиксель в каждой строке квантованного изображения и заменить каждый последующий пиксель на разницу от пикселя к его левому краю.

Как бы вы закодировали это в Matlab и кто-нибудь может объяснить этоменя концептуально?

Кроме того, меня беспокоит то, что из-за того, что изображение является относительно однородным из-за квантования динамического диапазона, большая часть изображения будет выглядеть черной, нет?Мне кажется, что только квантовые значения будут иметь только переходные области и ребра.

1 Ответ

3 голосов
/ 13 мая 2011

Чтобы создать разницу с пикселем слева, все, что вам нужно сделать, это вычесть пиксели в столбцах 1,2,3 ... из столбцов 2,3,4 ...

%# create a random image with four values
randomImage = randi(4,[100,90]); %# use different numbers of rows and cols so we know which is which

%# catenate the first column of the image with the difference from the pixel to the left
%# for all pairs of columns in the image
differenceImage = [randomImage(:,1),randomImage(:,1:end-1)-randomImage(:,2:end)];

Да, вы ожидаете довольно много однородных исправлений (которые будут серыми, поскольку, если вы не нанесете абсолютное значение различий, будут отрицательные).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...