2014-11-20 7 views
0

Я хочу, чтобы remove/change цвет фона изображения в Matlab.Как изменить цвет фона изображения?

Кто-нибудь знает, как это сделать?

Вот пример изображения, я хочу удалить зеленый цвет фона.

http://cdn4.frip.in/wp-content/uploads/2013/05/custom-widget-area-for-wordpress.jpg

+0

Знаете ли вы, что цвет фона? – Shai

+0

Нет, я не знаю. Поскольку есть разные случаи, некоторые из них могут быть зеленым цветом фона, а некоторые - другими. Есть ли способ сделать это? – kim

+0

Кстати, цвет фона может немного отличаться между разными областями. Как и изображение, показанное выше, некоторые области светлее зеленого. – kim

ответ

4

Простейшее ответ был бы,

c = [70 100 70]; 
thresh = 50; 
A = imread('image.jpg'); 
B = zeros(size(A)); 
Ar = A(:,:,1); 
Ag = A(:,:,2); 
Ab = A(:,:,3); 
Br = B(:,:,1); 
Bg = B(:,:,2); 
Bb = B(:,:,3); 
logmap = (Ar > (c(1) - thresh)).*(Ar < (c(1) + thresh)).*... 
     (Ag > (c(2) - thresh)).*(Ag < (c(2) + thresh)).*... 
     (Ab > (c(3) - thresh)).*(Ab < (c(3) + thresh)); 
Ar(logmap == 1) = Br(logmap == 1); 
Ag(logmap == 1) = Bg(logmap == 1); 
Ab(logmap == 1) = Bb(logmap == 1); 
A = cat(3 ,Ar,Ag,Ab); 
imshow(A); 

enter image description here

Вы должны изменить c (цвет фона) и thresh (порог c) и найти лучшее, что подходит для вашего фона.

Вы можете определить B как новое фоновое изображение. Пример примера Bb(:,:) = 255; даст вам синий фон.

enter image description here

Вы можете даже определить B как изображение.

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

+0

Спасибо за ваш ответ. Что такое C и thresh? На основании каких правил изменить эти два значения для других изображений? Большое спасибо! – kim

+1

c - определение зеленого цвета (определение на [R G B] со значением от 0 до 255). Thresh - ваш порог, который определяет разделение между тем, что в зеленом, а что нет. –

+0

Я вижу. Большое спасибо! Есть ли способ изменить цвет, если мы не знаем, каков цвет фона заранее, так как будет много изображений с различным цветом фона? Или просто удалите цвет фона? – kim

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