📜  在MATLAB中将彩色图像的背景更改为灰度

📅  最后修改于: 2022-05-13 01:54:44.199000             🧑  作者: Mango

在MATLAB中将彩色图像的背景更改为灰度

在本文中,我们将讨论如何使用 MATLAB 将彩色图像的背景更改为灰度。我们专注于 RGB 颜色模型。拍摄 RGB 彩色图像。除了图像中突出显示的对象外,整个图像都被转换为灰度。我们保持花朵的颜色为黄色,并将其余的背景转换为灰度。

实用函数:

这是手动编写的函数。它首先将彩色图像转换为灰度图像。创建一个新的彩色图像,并为所有三个通道 (RGB) 分配灰度图像的值(在第一步中获得)。这个想法是保持图像中有趣部分的颜色,并将其余像素保持为灰度。我们注意到,对于中心花部分,红色强度值大于等于 110;绿色强度值大于等于 70,蓝色强度值小于 90。

在完成遍历和修改新创建的图像后。我们返回新图像。

方法:

  • 读取图像:首先,读取输入图像并将其存储在名为 K 的变量中。使用 imread()函数将图像读取到 MATLAB 环境中,该函数将具有适用扩展名的文件名作为参数。下面给出的语法将 JPEG 图像读入图像数组。
I=imread('image.jpg');
  • 图像被传递给实用函数进行修改。
  • 显示图像显示原始图像和修改后的图像。使用 imtool()函数将图像显示到 MATLAB 环境中。 imtool以空状态打开一个新的图像工具。我们可以使用文件菜单选项打开从工作区导入来选择要显示的图像。
imtool(k1,[]);
  • 实用函数为中央花卉部分设置所有 3 通道像素强度。
  • 实用函数将所有 3 个通道的像素强度设置为相同的其余背景,等于灰度图像。

现在,我们举了一个例子来改变图像的背景颜色。

例子:

Matlab
% MATLAB code for Change background to GRAY
% Read image and pass to function.
k=imread("yellow2.jpeg");
imtool(k,[]);
k1=changeBG(k);
imtool(k1,[]);
  
% Utility function.
function f=changeBG(img)
k=rgb2gray(img);
k1(:,:,1)=k;
k1(:,:,2)=k;
k1(:,:,3)=k;
[x,y]=size(k);
for i=1:x
    for j=1:y
        if(img(i,j,1)>=110 && img(i,j,2)>=70 && img(i,j,3)<90)
            k1(i,j,1)=img(i,j,1);
            k1(i,j,2)=img(i,j,2);
            k1(i,j,3)=img(i,j,3);
        end
    end
end
f=k1;
end


输出:

图:原始彩色图像

 

图:灰色背景图像