2015-01-03 5 views
0

Я пытаюсь изменить цвет пикселя изображения таким образом.Как изменить цвет пикселя в matlab

im = imread('example.jpg'); 

im1 = im(:,:,1); 
im2 = im(:,:,2); 
im3 = im(:,:,3); 

im1(1,1) = 255; 
im2(1,1) = 255; 
im3(1,1) = 255; 

im = cat(3,im1,im2,im3); 

Правильно ли это сделать?

Поскольку этот код не меняет цвет пикселя.

p = impixel(im, 1,1); 

р не равна [255 255 255]

ответ

1

Я попробовал ваш код и он работает, получил [255 255 255], тогда как оригинал один был [226 137 125] ..

Ваш подход работает, но это можно сделать за счет более короткого процесса:

im   = imread('example.jpg'); 
im(1, 1, :) = [255 255 255]; 
p   = [im(1, 1, :)]; 
+0

Вы попробовали 'impixel' часть? Это не выглядит правильным. Но я согласен с вашей улучшенной версией; разделение изображения не достигает ничего полезного. – beaker

+0

@beaker - Yess Я попробовал, и это сработало. На самом деле я не знал о функции «impixel», но я просто написал ее и привел «255 255 255». Код выше, не дает мне ничего плохого. – mehmet

+0

Я тоже не слышал об этом, но, глядя на документацию, это выглядит так: 'c' и' r' должны быть векторами, поэтому я не знаете, если бы он выдавал ошибку, если вы использовали скаляры. По-видимому, это не так :) – beaker

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