相关疑难解决方法(0)

如何将RGB图像转换为灰度但保留一种颜色?

我正在尝试创建一个类似于罪恶之城或其他电影的效果,除了图像中的所有颜色之外,它们都会删除所有颜色.

我有一个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)

rgb matlab colors image-processing grayscale

36
推荐指数
2
解决办法
3万
查看次数

使用Hough变换进行椭圆检测

使用Hough变换,如何在2D空间中检测并获取椭圆的(x0,y0)和"a"和"b"的坐标?

这是ellipse01.bmp:

椭圆图像

I = imread('ellipse01.bmp');
[m n] = size(I);
c=0;
for i=1:m
    for j=1:n
        if I(i,j)==1
        c=c+1;
        p(c,1)=i;
        p(c,2)=j;
        end
    end
end
Edges=transpose(p);
Size_Ellipse = size(Edges);
B = 1:ceil(Size_Ellipse(1)/2);
Acc = zeros(length(B),1);
a1=0;a2=0;b1=0;b2=0;
Ellipse_Minor=[];Ellipse_Major=[];Ellipse_X0 = [];Ellipse_Y0 = [];
Global_Threshold = ceil(Size_Ellipse(2)/6);%Used for Major Axis Comparison
Local_Threshold = ceil(Size_Ellipse(1)/25);%Used for Minor Axis Comparison
[Y,X]=find(Edges);
Limit=numel(Y);
Thresh = 150;
Para=[];

for Count_01 =1:(Limit-1)
  for Count_02 =(Count_01+1):Limit
    if ((Count_02>Limit) || (Count_01>Limit))
      continue
    end
    a1=Y(Count_01);b1=X(Count_01);
    a2=Y(Count_02);b2=X(Count_02);
    Dist_01 = (sqrt((a1-a2)^2+(b1-b2)^2));
    if (Dist_01 >Global_Threshold)
      Center_X0 = …
Run Code Online (Sandbox Code Playgroud)

algorithm matlab hough-transform

7
推荐指数
2
解决办法
2万
查看次数