如何在 MATLAB 中创建部分彩色灰度图像?


我们可以使用 MATLAB 创建部分彩色灰度图像,我们将在本教程中讨论这一点。但在那之前,让我们首先概述一下部分彩色灰度图像的用途。

什么是部分彩色灰度图像?

某些部分或对象为彩色,而其余部分为灰度级的数字图像称为部分彩色灰度图像

简单来说,在一个图像区域中同时包含彩色和灰度级对象的数字图像称为部分彩色灰度图像。

部分彩色灰度图像用于增强图像的视觉质量,并广泛用于艺术和创意成像目的。

现在让我们了解如何使用 MATLAB 创建部分彩色灰度图像。

在 MATLAB 中创建部分彩色灰度图像

我们可以利用 MATLAB 创建部分彩色灰度图像。下面解释了创建部分彩色灰度图像的分步过程。

  • 步骤 (1) − 使用“imread”函数读取输入图像。

  • 步骤 (2) − 从输入图像中分离 RGB 颜色分量。

  • 步骤 (3) − 为着色创建单独的灰度通道。

  • 步骤 (4) − 读取指定灰度图像需要着色区域的掩码图像。

  • 步骤 (5) − 将掩码图像转换为灰度级。

  • 步骤 (6) − 通过对掩码图像进行阈值处理创建二值掩码。

  • 步骤 (7) − 使用二值掩码将颜色应用于掩码区域。

  • 步骤 (8) − 将所有 RGB 通道组合以创建最终的部分彩色灰度图像。

  • 步骤 (9) − 显示部分彩色灰度图像。

我们可以按照这些步骤使用 MATLAB 创建部分彩色灰度图像。

示例

让我们看一个示例,了解如何在 MATLAB 中编写代码以创建部分彩色灰度图像。

% MATLAB code to create a partially colored gray image
% Read the input image
I = imread('https://tutorialspoint.com/assets/questions/media/14304-1687425236.jpg');	% Replace with your input image

% Separate the RGB color channels
R = I(:,:,1);	% Red channel
G = I(:,:,2);	% Green channel
B = I(:,:,3);	% Blue channel

% Convert the input image to grayscale image
gray_img = rgb2gray(I);

% Create separate grayscale channels for coloring
R1 = gray_img;
G1 = gray_img;
B1 = gray_img;

% Read the mask image
mask_img = imread('https://tutorialspoint.com/assets/questions/media/14304-1687425236.jpg');	% Replace URL with masked image URL

% Convert the mask image to grayscale
mask_gray = rgb2gray(mask_img);

% Create a binary mask by thresholding the gray mask image
binary_mask = imbinarize(mask_gray);

% Determine the indices where the mask is black
A = find(binary_mask == 0);

% Apply colors from original image to the masked regions
R1(A) = R(A);
G1(A) = G(A);
B1(A) = B(A);

% Create the partially colored RGB image
colored_img = cat(3, R1, G1, B1);

% Convert the image to uint8 format to display
colored_img = uint8(colored_img);

% Display the original image and partially colored image
figure;
subplot(2, 1, 1);
imshow(I);
title('Original Image');

subplot(2, 1, 2);
imshow(colored_img);
title('Partially Colored Image');

输出

运行此代码时,将产生以下输出:

解释

在此示例中,我们首先使用“imread”函数读取输入图像。然后,我们从图像中分离 RGB 颜色通道,并使用“rgb2gray”函数将其转换为灰度级。

之后,我们创建单独的灰度通道 R1、G1 和 B1 来对图像进行着色。然后,我们使用“imread”函数读取掩码图像,并将其转换为灰度级以进行处理。

接下来,我们使用“imbinarize”函数通过对灰度掩码图像进行阈值处理来创建二值掩码。然后,我们确定掩码为黑色的索引(我们也可以通过将 0 替换为 1 来检查白色掩码)。

之后,我们将原始图像中的颜色应用于掩码区域。最后,我们将所有颜色通道组合以创建部分彩色灰度图像。

最后,我们使用“imshow”函数显示原始图像和部分彩色灰度图像。

结论

这就是使用 MATLAB 创建部分彩色灰度图像的全部内容。在本教程中,我借助一个示例解释了分步过程,以便在 MATLAB 中创建部分彩色灰度图像。总之,部分彩色灰度图像是在单个图像中同时包含彩色和灰度级效果的图像。

更新于: 2023年10月5日

69 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告