如何在 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.tw/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.tw/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 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.