2013-07-10 2 views
2

Можно ли копировать (рисовать) одно изображение в другое место в Matlab? Мне нужно не только копировать матричную часть, но и копировать с интерполяцией, т. Е. Передавать координаты фракций.Копировать (нарисовать) одно изображение внутри области другого изображения в Matlab?

+0

Если говорить о так называемой в живописи, он был задан на [DSP] (http://dsp.stackexchange.com/questions/1623/implementing-discrete-poisson-equation- трейлеры-Neumann-граничное условие/1655 # 1655). – Maurits

ответ

3

Вы можете «смешивать» изображения с использованием альфа-канала (или фракционной маски).
Предположим, что имеется master большое изображение, region тем меньше изображение, которое будет смешан в master и alpha дробной маски (такого же размера, как region), где alpha=0 указывает, что соответствующий выходной пиксель должен быть взят из master и alpha=1 указывает пиксель от region (alpha может быть дробным, чтобы указать смесь).
Я предполагаю, что master, region и alpha имеют одинаковую ширину и высоту и имеют тип double.
Тогда

>> blend = bsxfun(@times, master, 1-alpha) + bsxfun(@times, region, alpha) 
+0

Спасибо, но как добиться дробного пространственного перевода? –

+1

использовать 'tformarray' для перевода' region' в отношении 'master', определяющего линейную или кубическую интерполяцию с дробным переводом, должен дать вам результат, который вы хотите. См. [This] (http://www.mathworks.com/help/images/performing-general-2-d-spatial-transformations.html#f12-28504) для получения дополнительной информации. – Shai

+0

Suzan Cioc, я думаю, вы забыли принять ответ @ Shai – Nick

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