zoukankan      html  css  js  c++  java
  • 点运算

    调整亮度/对比度

    线性函数



    结论:如果一幅图像集中在较暗的区域而导致图像偏暗,可以用灰度拉伸功能来扩展(斜率>1)物体的灰度区间以改善图像;同样,如果图像的灰度集中在较亮的区域而导致图像偏亮,也可以用灰度拉伸功能来压缩(斜率<1)物体灰度区间以改善图像质量。
    分段线性函数的作用:实际上是增强了原图各部分的反差,即增加图像中感兴趣的灰度区域,相对抑制那些不感兴趣的灰度区域。

    非线性函数


    内置函数


    Matlab提供了stretchlim()函数,可以自动计算图像灰度值的最小值和最大值构成的区间,即需调整的范围。

    直方图

    灰度统计直方图

    直方图修正

    直方图均衡化

    直方图规定化

    理想情况下,直方图均衡化实现了图像灰度的均衡分布,对提高图像对比度、提升图像亮度具有明显的作用。在实际应用中,有时并不需要图像的直方图具有整体的均匀分布,而是希望直方图与规定要求的直方图一致,这就是直方图规定化。它可以人为地改变原始图像直方图的形状,使其成为某个特定的形状,是用于产生处理后有特殊直方图的图像处理方法。
    在Matlab中没有直接实现直方图规定化的函数。但是可以通过imhist和histeq两个函数的结合使用来实现。

    I=imread('pout.tif');
    subplot(2,2,1),imshow(I);
    title('模板图像');
    subplot(2,2,2),imhist(I);
    title('模板图像的直方图');
    J=imread('tire.tif');
    I_M=imhist(I);
    K=histeq(J,I_M);
    subplot(2,2,3),imshow(K);
    title('规定化后的图像');
    subplot(2,2,4),imhist(K);
    

    彩色图像点运算

    线性/非线性变换

    sourceImage=im2double(imread('landscape.jpg'));
    J=rgb2hsi(sourceImage);%RGB空间转换到HSI空间
    H=J(:,:,1); %提取色调分量
    S=J(:,:,2); %提取饱和度分量
    I=J(:,:,3); %提取亮度分量 
    %利用灰度变换,自动调整亮度分量的灰度范围
    M=stretchlim(I); 
    I_enhancing1=imadjust(I,M,[0 1],0.4); %亮度增大    
    enhancingImage1=cat(3,H,S,I_enhancing1);%三分量合成
    rgb1=hsi2rgb(enhancingImage1);%HSI空间转换到RGB空间 
    I_enhancing2=imadjust(I,M,[0 1],4); %亮度降低 
    enhancingImage2=cat(3,H,S,I_enhancing2);%三分量合成
    rgb2=hsi2rgb(enhancingImage2);%HSI空间转换到RGB空间 
    subplot(1,3,1);imshow(sourceImage);title('原始图像');
    subplot(1,3,2);imshow(rgb1);title('HSI空间亮度增大');
    subplot(1,3,3);imshow(rgb2);title('HSI空间亮度降低');
    

    直方图均衡化

    sourceImage=im2double(imread('people.jpg'));
     J=rgb2hsi(sourceImage);
     H=J(:,:,1);
     S=J(:,:,2);
     I=J(:,:,3);
     %利用直方图均衡化,调整亮度分量的灰度范围
     I_enhancing=histeq(I);   
     enhancingImage=cat(3,H,S,I_enhancing);
     rgb=hsi2rgb(enhancingImage);
     subplot(1,2,1);imshow(sourceImage);title('原始图像');
     subplot(1,2,2);imshow(rgb);title('直方图均衡化后图像');
    
    

    直方图规定化

     sourceImage=im2double(imread('people.jpg'));
     J=rgb2hsi(sourceImage);
     H=J(:,:,1);%原始图像的色调分量
     S=J(:,:,2);%原始图像的饱和度分量
     I=J(:,:,3);%原始图像的亮度分量
     %利用直方图规定化,设置亮度分量的灰度范围
     object_M = im2double(imread('template.jpg'));
     J_M=rgb2hsi(object_M);
     H_M=J_M(:,:,1);%模板图像的色调分量
     S_M=J_M(:,:,2);%模板图像的饱和度分量
     I_M=J_M(:,:,3);%模板图像的亮度分量
     I_M_imhist = imhist(I_M);%模板图像的直方图
     I_enhancing= histeq(I,I_M_imhist);%直方图规定化处理
     enhancingImage=cat(3,H,S,I_enhancing);
     rgb=hsi2rgb(enhancingImage);
     subplot(1,3,1);imshow(sourceImage);title('原始图像');
     subplot(1,3,2);imshow(object_M);title('模板图像');
     subplot(1,3,3);imshow(rgb);title('直方图规定化后图像');
    
    
  • 相关阅读:
    Matlab中如何取出cell型数组里的某一列,和具体某个值
    Matlab 读取dat文件(包含几行多余文本,数据带有数字和字符串,且以逗号分隔)
    批处理txt文件
    Word删除关键字所在行
    移动web页面前端开发总结
    JavaScript 的性能优化:加载和执行
    jq中prop和attr的区别以及各自的使用
    移动web开发经验总结(转)
    JavaScript核心(晋级高手必读篇)
    -webkit-transition: all .2s ease-in-out;
  • 原文地址:https://www.cnblogs.com/thrseven/p/15302353.html
Copyright © 2011-2022 走看看