У вас есть набор инструментов для обработки изображений? Если это так, вы можете решить проблему, взяв изображения, разделив их на цветовые каналы их компонентов, изменив размеры отдельных каналов и повторно собрав их в цветные изображения с измененным размером. Я написал программу для этого некоторое время назад, и я помню код, похожий на этот:
function imout = ResizeRGB(imin,height,width)
imout = zeros(height,width,3);
iminR = imin(:,:,1);
iminG = imin(:,:,2);
iminB = imin(:,:,3);
imoutR = imresize(iminR, [height width]);
imoutG = imresize(iminG, [height width]);
imoutB = imresize(iminB, [height width]);
imout(:,:,1) = imoutR;
imout(:,:,2) = imoutG;
imout(:,:,3) = imoutB;
(Поскольку на данный момент у меня нет удобного IPT, эту программу следует рассматривать как псевдокод, даже если она более или менее имеет правильный синтаксис Matlab. Я не могу запустить ее без IPT, поэтому не могу сказать если глючит или нет.)
После того, как вы измените размеры изображений, чтобы они имели общие размеры, проблема становится идентичной проблеме сравнения цветов для двух изображений одинакового размера.
С другой стороны, если у вас есть изображение патча и изображение, которое может содержать патч, вы можете рассмотреть возможность использования двоичной маски для порогового значения результатов взаимной корреляции (xcorr2 в IPT). Для получения дополнительной информации об этом подходе на веб-сайте MathWorks есть учебное руководство: http://www.mathworks.com/products/demos/image/cross_correlation/imreg.html