Сопоставление гистограммы двух цветных изображений в matlab - PullRequest
15 голосов
/ 15 июня 2011

Кто-нибудь знает, как выполнить сопоставление гистограммы RGB на двух цветных изображениях?

, например, это изображение, которое необходимо повторно сопоставить:

image to be re-mapped

иэто целевое изображение

target image

Тогда переназначенное изображение RGB выглядит следующим образом

re-mapped image

вот что я сделал до сих порВ этом коде я взял два цветных изображения im1 и im2

Я взял im1, который нужно переназначить, затем разбил его на

его цветазатем я взял каждый цвет im1 и использовал histeq, чтобы сопоставить их гистограммы с

каждым цветом в im2.

Я не знаю, как восстановить перераспределенное изображение изцвета, которые я соответствовал, любая помощь, пожалуйста, это было бы хорошо ??:

im1 = imread('Atlas-Mer.png');
im2 = imread('techno-trs.png');

Red1 = im1(:, :, 1);
Green1 = im1(:, :, 2);
Blue1 = im1(:, :, 3);
.
.
.
Red2 = im2(:, :, 1);
Green2 = im2(:, :, 2);
Blue2 = im2(:, :, 3);

red2n = histeq(Red2,HnRed1);
green2n = histeq(Green2,HnGreen1);
blue2n = histeq(Blue2,HnBlue1);

Ответы [ 3 ]

5 голосов
/ 31 октября 2011

Ну, прошло уже несколько месяцев с тех пор, как был опубликован исходный вопрос, но я думаю, что каждый может использовать альтернативный подход к тому, что было предложено: следующий код помещает три цветовых канала в одно изображение RGB:

rgb_out = cat(3, red2n, green2n, blue2n);

4 голосов
/ 15 июня 2011

Вы можете просто сделать:

im2(:, :, 1) = red2n;

и т.д.

0 голосов
/ 01 июля 2016

Matlab теперь имеет встроенную функцию в панели инструментов для обработки изображений: http://www.mathworks.com/help/images/ref/imhistmatch.html

Но если у вас есть более старая версия Matlab (у меня есть 2010b, и она не включает imhistmatch.m), это функция, которая выполняет классическое сопоставление гистограммы: https://www.mathworks.com/matlabcentral/fileexchange/27396-matchhistograms

...