所以我试图创建一个类似于罪恶城市或其他电影的效果,他们删除除了一个图像中的所有颜色。
我有一个RGB图像,我想转换为灰度,但我想保持一种颜色。
这是我的照片:
我想保持红色。其余的应该是灰度。
这是我的代码输出到目前为止(你可以看到,区域是正确的,我不知道为什么他们是白色,而不是红色):
这里是我的代码到目前为止:
filename = 'roses.jpg';
[cdata,map] = imread( filename );
% convert to RGB if it is indexed image
if ~isempty( map )
cdata = idx2rgb( cdata, map );
end
%imtool('roses.jpg');
imWidth = 685;
imHeight = 428;
% RGB ranges of a color we want to keep
redRange = [140 255];
greenRange = [0 40];
blueRange = [0 40];
% RGB values we don't want to convert to grayscale
redToKeep = zeros(imHeight, imWidth);
greenToKeep = zeros(imHeight, imWidth);
blueToKeep = zeros(imHeight, imWidth);