zoukankan      html  css  js  c++  java
  • 数字图像处理:图像的灰度变换(Matlab实现)

    (1)线性变换:
    通过建立灰度映射来调整源图像的灰度。

    k>1增强图像的对比度;k=1调节图像亮度,通过改变d值达到调节亮度目的;0

    i = imread('theatre.jpg');
    i = im2double(rgb2gray(i));
    [m,n]=size(i);
    %增加对比度
    Fa = 1.25; Fb = 0;
    O = Fa.*i + Fb/255;
    figure(1), subplot(221), imshow(O);
    title('Fa = 1.25, Fb = 0, contrast increasing');
    figure(2),subplot(221), [H,x]=imhist(O, 64);
    stem(x, (H/m/n), '.');
    title('Fa = 1.25, Fb = 0, contrast increasing');
    %减小对比度
    Fa =0.5; Fb = 0;
    O = Fa.*i + Fb/255;
    figure(1), subplot(222),imshow(O);
    title('Fa = 0.5, Fb = 0, contrast decreasing');
    figure(2), subplot(222), [H,x] = imhist(O, 64);
    stem(x, (H/m/n), '.');
    title('Fa = 0.5, Fb = 0, contrast decreasing');
    %线性亮度增加
    Fa = 0.5; Fb = 50;
    O = Fa.*i + Fb/255;
    figure(1), subplot(223), imshow(O);
    title('Fa = 0.5, Fb = 50, brightness control');
    figure(2), subplot(223), [H,x]=imhist(O,64);
    stem(x, (H/m/n), '.');
    title('Fa = 0.5, Fb = 50, brightness control');
    %反相显示
    Fa = -1; Fb = 255;
    O = Fa.*i + Fb/255;
    figure(1), subplot(224), imshow(O);
    title('Fa = -1, Fb = 255, reversal processing');
    figure(2), subplot(224),[H,x]=imhist(O, 64);
    stem(x, (H/m/n), '.');
    title('Fa = -1, Fb = 255, reversal processing');

    (2)对数变换:
    增强低灰度,减弱高灰度值。

    i = imread('theatre.jpg');


    i = rgb2gray(i);
    i = double(i);

    out1 = log(1+i)/0.065;
    out2 = log(1+i)/0.035;
    out1(find(out1>255)) = 255;
    out2(find(out2>255)) = 255;
    out1 = uint8(out1);
    out2 = uint8(out2);

    (3)幂次变换:
    次数小于1时,增强低灰度,减弱高灰度;次数大于1时增强高灰度,减弱低灰度。

    i = rgb2gray(imread('theatre.jpg'));
    i = double(i);
    y1 = 255*(i/255).^2.5;
    y2 = 255*(i/255).^0.4;
    y1 = uint8(y1);
    y2 = uint8(y2);

    (4) 指数变换:
    增强高灰度,减弱低灰度。

    i = imread('theatre.jpg');
    i = rgb2gray(i);
    i = double(i);

    y1 = 1.5.^(i*0.070)-1;
    y2 = 1.5.^(i*0.050)-1;
    y1(find(y1>255)) = 255;
    y2(find(y2>255)) = 255;
    y1 = uint8(y1);
    y2 = uint8(y2);

    (5)灰度拉伸:
    有时图像灰度集中在某小块区域,需要改变图像对比度。

    i = imread('theatre.jpg');
    i = rgb2gray(i);
    L = imadjust(i,[ ],[50/255;150/255]);
    J = imadjust(L,[50/255;150/255 ],[20/255;230/255]);

    (6)灰度均衡:
    i = rgb2gray(imread('theatre.jpg'));
    LC = imadjust(i,[ ],[50/255;150/255]);
    HE1 = histeq(LC);%均衡函数

    (7)直方图规定化:
    实现局部的灰度均衡。

    img = rgb2gray(imread('theatre.jpg'));
    img_ref = rgb2gray(imread('rpic.jpg'));%参考图,按照这个的的直方图进行规定化
    [hgram, x] = imhist(img_ref);
    J = histeq(img, hgram);

  • 相关阅读:
    <庆余年>
    JUC-12.3-线程的调度
    JUC-12.1-线程池介绍
    JUC-12.2-线程池使用
    JUC-11-线程八锁
    JUC-10-ReadWriteLock读写锁
    JUC-9-线程按序交替
    JUC-8-lock和Condition使用
    JUC-7-lock接口
    xcode单词及回调
  • 原文地址:https://www.cnblogs.com/geeksongs/p/11037415.html
Copyright © 2011-2022 走看看