我正在尝试创建一个类似于罪恶之城或其他电影的效果,除了图像中的所有颜色之外,它们都会删除所有颜色.
我有一个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 …Run Code Online (Sandbox Code Playgroud)