Matlab數字圖像處理——灰度變換

clear;
close all;
%讀取灰度圖像
img = imread('E:\DIP\image_gray.jpg');
img_0 = im2double(img);
subplot(2,4,1);
imshow(img_0);
title('原圖');
a = size(img_0);
%得到矩陣最大值
L =max(max(img_0));

qiufan = zeros(a(1),a(2));
fanggen = zeros(a(1),a(2));
jieduan = zeros(a(1),a(2));
buchang = zeros(a(1),a(2));
pingfang = zeros(a(1),a(2));
fang = zeros(a(1),a(2));
suo = zeros(a(1),a(2));
for i = 1:1:(a(1)*a(2))
    %求反
    qiufan(i) =1-img_0(i);
    %方根運算
    fanggen(i) = sqrt(img_0(i));
    %截斷運算
    jieduan(i) =img_0(i)-0.4;
    if(jieduan(i)<0)
        jieduan(i) = 0;
    end
    %補償運算
    buchang(i) =img_0(i)+0.4;
    if(buchang(i)>1)
        buchang(i) = 1;
    end
    %平方運算
    pingfang(i) = img_0(i)^2;
    %放縮運算
    %放
    fang(i) =0.3*img_0(i);
    %縮
    suo(i) =1.7*img_0(i);
end
subplot(2,4,2);
imshow(qiufan);
title('求反');
imwrite(qiufan,'E:\DIP\image_qiufan.jpg','jpg');

subplot(2,4,3);
imshow(fanggen);
title('方根');
imwrite(fanggen,'E:\DIP\image_fanggen.jpg','jpg');

subplot(2,4,4);
imshow(jieduan);
title('截斷');
imwrite(jieduan,'E:\DIP\image_jieduan.jpg','jpg');

subplot(2,4,5);
imshow(buchang);
title('補償');
imwrite(buchang,'E:\DIP\image_buchang.jpg','jpg');

subplot(2,4,6);
imshow(pingfang);
title('平方');
imwrite(pingfang,'E:\DIP\image_pingfang.jpg','jpg');

subplot(2,4,7);
imshow(fang);
title('放縮-放');
imwrite(fang,'E:\DIP\image_fang.jpg','jpg');

subplot(2,4,8);
imshow(suo);
title('放縮-縮');
imwrite(suo,'E:\DIP\image_suo.jpg','jpg');

處理結果圖:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章