Matlabでカラーヒストグラムの均等化を実装するには?

MATLAB でカラー ヒストグラム均等化を実装するには、以下の手順に従います。

  1. カラー画像読み込み: imread 関数を使用して、次のように生のカラー画像を読み込みます。img = imread(‘image.jpg’);
  2. RGB画像をHSV色空間に変換します。例えば、rgb2hsv関数を使用してRGB画像をHSV画像に変換します。hsv_img = rgb2hsv(img);
  3. 輝度成分の取り出し:HSV画像は色相、彩度、明度の3つの成分で構成されています。ここでは明度成分のみヒストグラム平衡化を行います。hsv_img(:,:,3)を用いて明度成分を取り出すことができます。
  4. HSV 画像の輝度成分に対してヒストグラム均衡化を実施します.例えば、eq_img = histeq(hsv_img(:,:,3)) のように入力します.
  5. [eq_img]で置き換えた輝度成分をオリジナル[HSV_image]に戻します。
  6. HSV画像均衡化後にRGB色空間に変換する、均衡化したHSV画像をrgb2hsv関数を用いてRGB画像に変換します:eq_rgb_img = hsv2rgb(hsv_img)
  7. 元画像とヒストグラム平坦化後の画像を表示する:imshow関数を使用して元画像とヒストグラム平坦化後の画像を表示する。例:figure; subplot(1,2,1); imshow(img); title(‘元の画像’); subplot(1,2,2); imshow(eq_rgb_img); title(‘ヒストグラム平坦化後の画像’);

コード全体は次のとおりです。

img = imread('image.jpg'); % 读取彩色图像
hsv_img = rgb2hsv(img); % 将彩色图像转换为HSV色彩空间
eq_img = histeq(hsv_img(:,:,3)); % 进行直方图均衡化
hsv_img(:,:,3) = eq_img; % 将均衡化后的亮度分量替换回原始HSV图像中
eq_rgb_img = hsv2rgb(hsv_img); % 将均衡化后的HSV图像转换回RGB色彩空间
figure;
subplot(1,2,1); imshow(img); title('Original Image');
subplot(1,2,2); imshow(eq_rgb_img); title('Equalized Image');

上記のコードを実行すると、元の画像とイコライズされた画像が表示されます。

bannerAds