Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 从RGB图像中删除一种颜色 让我们考虑下面的图像 _Matlab_Image Processing_Rgb - Fatal编程技术网

Matlab 从RGB图像中删除一种颜色 让我们考虑下面的图像

Matlab 从RGB图像中删除一种颜色 让我们考虑下面的图像 ,matlab,image-processing,rgb,Matlab,Image Processing,Rgb,我发现了一个关于如何保持其中一个RGB颜色(例如红色)并删除所有其他颜色的主题,下面是matlab中执行相同任务的代码 I=imread('fruit.jpg'); m=size(I,1); n=size(I,2); for mm=1:m for nn=1:n if I(mm,nn,1)<80 || I(mm,nn,2)>80 || I(mm,nn,3)>100 gsc=0.3*I(mm,nn,1)+0.59*I(mm,nn,2)+0.11*I(mm,nn,3); I(m

我发现了一个关于如何保持其中一个RGB颜色(例如红色)并删除所有其他颜色的主题,下面是matlab中执行相同任务的代码

   I=imread('fruit.jpg');
m=size(I,1);
n=size(I,2);
for mm=1:m
for nn=1:n
if I(mm,nn,1)<80 || I(mm,nn,2)>80 || I(mm,nn,3)>100
gsc=0.3*I(mm,nn,1)+0.59*I(mm,nn,2)+0.11*I(mm,nn,3);
I(mm,nn,:)=[gsc gsc gsc];
end
end
end
imshow(I);
运行后,我得到了以下结果


结果看起来不错,但这是我唯一可以改变颜色的方法吗?我可以不使用循环吗?我需要的是实现颜色更改的更直观的方法

您应该使用Matlab文档中的矩阵运算:


你期待什么?对不起,对不起,我将更改代码请勿关闭,我尊重此网站,并允许我澄清我遇到的问题。你看了其他答案了吗?你从哪里获得此代码?归因很重要。是的,我看了,没什么特别的
I = rand(5,5,3).*256;
Red = I(:,:,1)>=80 & I(:,:,2)<=80 & I(:,:,3)<100;
Red = [Red,Red,Red];
NotRed = !Red;
Gsc = I(:,:,1)*0.3 + I(:,:,2)*0.59 + I(:,:,3)*0.11;
I(NotRed) = [Gsc;Gsc;Gsc];