在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
输出: