2. Matlab 画像の 3 つの方法による濃淡値処理

1. 基礎知識

カラー画像: 各ピクセルは R、G、B の 3 つの成分で表され、各チャンネルの値の範囲は 0 ~ 255 です。(通常、カラー画像は R、G、B の 3 ページで構成され、各ページは 2 次元マトリックスです)

グレースケール イメージ: ピクセルごとに 1 つのサンプル カラーのみを含むイメージ。通常は、最も暗い黒から最も明るい白までのグレー スケールとして表示されます。グレー値は 0 ~ 255 に分布します。

バイナリ イメージ(白黒イメージ): 各ピクセルの可能性は 2 つだけです。0 と 1.0 は黒を表し、1 は白を表します。データ型は通常、1 バイナリ ビットです。

2. 画像グレースケールの 3 つの方法

最大値法: R、G、B の値を 3 つの値の最大値に等しくします (R=G=B=max (R, G, B))。最大値法では、高解像度のグレースケール画像が形成されます。輝度。

平均法:R、G、Bの値から平均値を計算し、R=G=B=(R+G+B)/3を計算します。平均法はより柔らかいグレースケール画像を形成します。

加重平均法:重要度やその他の指標に応じてR、G、Bに異なる重みを割り当て、R、G、Bの値を加重平均します、R=G=B=WR+VG+UB,W 、V 、U はそれぞれ重みを表します。研究によると、人々は緑に対する感度が最も高く、次に赤、青に対する感度が最も低いことが示されているため、W>V>U です。実験と理論は、W=0.30 の場合、 V=0.59、U=0.11のとき、最も妥当なグレースケール画像が得られます。

%代码如下
clc;%clc的作用就是清屏幕
clear;%clear是删除所有的变量
close all;%close all是将所有打开的图片关掉。
i=imread('E:\我的桌面\MATLAB\练习\1.jpg');%绝对路径的读取
[n m a]=size(i);%判断图像的大小
z= rgb2gray(i);%调用MATLAB函数实现灰度化
i1=zeros(n,m);
i2=zeros(n,m);
i3=zeros(n,m);

for x=1:n%通过双循环对图像进行灰度化处理
    for y=1:m
     i1(x,y)=max(i(x,y,1),max(i(x,y,2),i(x,y,3)));  %第一种方法实现灰度化
      i2(x,y)=(i(x,y,1)+i(x,y,2)+i(x,y,3))/3;%第二种方法实现灰度化
        i3(x,y)=0.3*i(x,y,1)+0.59*i(x,y,2)+0.11*i(x,y,3);%第三种方法实现灰度化
    end
end
figure,imshow(i);title('原图像')
figure,imshow(z);title('调用系统函数实现灰度化')
figure,imshow(uint8(i1));title('第一种方法')
figure,imshow(uint8(i2));title('第二种方法')
figure,imshow(uint8(i3));title('第三种方法')

ここに画像の説明を挿入

%也可以把地下显示代码改成
subplot(231);imshow(i);title('原图像')
subplot(232);imshow(z);title('调用系统函数实现灰度化')
subplot(233);imshow(uint8(i1));title('第一种方法')
subplot(234);imshow(uint8(i2));title('第二种方法')
subplot(235);imshow(uint8(i3));title('第三种方法')

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_55433305/article/details/126897890