2013-03-22 3 views
3

У меня есть два изображения, один 100x100, который я хочу построить в оттенках серого и один 20x20, который я хочу построить, используя другой цветовой код. Последнее должно быть наложено на первое.Как я могу «изобразить» изображение поверх другого изображения с другой цветовой схемой?

Это моя текущая попытка:

A = randn(100); 
B = ones(20); 
imagesc(A); 
colormap(gray); 
hold on; 
imagesc(B); 
colormap(jet); 

Есть несколько проблем с этим:

  1. Я не могу изменить смещение меньшего изображения. (Они всегда разделяют верхний левый пиксель.)
  2. Они имеют одинаковые цветовые схемы. (Второй colormap изменяет цвет всех пикселей.)
  3. Значения пикселей нормализуются по составному изображению, так что первое изображение изменяется, если второе изображение вводит новые экстремальные значения. Масштабирование для двух изображений должно быть раздельным.

Как это исправить?

Я хочу, чтобы эффект, подобный этому, за исключением того, что мой цвет накладка имеет прямоугольную форму и не wibbly:

enter image description here

ответ

3

Просто измените его так, что вы передаете в полной и правильной цветовой матрицы для A (т.е. 100x100x3 матрица), а не позволяя ему решать:

A = rand(100); % Using rand not randn because image doesn't like numbers > 1 
A = repmat(A, [1, 1, 3]); 
B = rand(20); % Changed to rand to illustrate effect of colormap 
imagesc(A); 
hold on; 
Bimg = imagesc(B); 
colormap jet; 

чтобы установить положение изображения B в пределах ее родительских осей, вы можете использовать его XDATA и YData свойства, которые оба установлены в [1 20], когда этот код завершено. Первое число указывает координату самой левой/верхней точки на изображении, а второе число - координату самой правой/нижней точки изображения. Он растянет изображение, если оно не соответствует размеру оригинала.

Пример:

xpos = get(Bimg, 'XData'); 
xpos = xpos + 20; % shift right a bit 
set(Bimg, 'XData', xpos); 
+0

Спасибо! Как я могу положить B на какой-то смещение, чтобы он не был в углу? – Andreas

+0

Ответ отредактирован для выполнения этого запроса. – wakjah

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