精华内容
下载资源
问答
  • 运用本函数,可以使图像的对比度拉伸,效果比直接使用imadjust,此函数是冈萨雷斯 数字图像处理 上面的 运用本函数,可以使图像的对比度拉伸,效果比直接使用imadjust,此函数是冈萨雷斯 数字图像处理 上面的
  • 冈萨雷斯数字图像处理(第三版)matlab代码 图3.10 对比度拉伸
  • Matlab——对比度拉伸

    万次阅读 2018-07-31 22:20:25
    1、代码如下: close all;clear all;clc; %关闭所有图形窗口,清除工作空间所有变量,清空命令行 I=imread('pout.tif'); J=imadjust(I,[0.2 0.5],[0 1]);%将0.2-0.5之间的灰度扩展到整个0-1范围,这种处理 对于...

    1、代码如下:

    close all;clear all;clc;  %关闭所有图形窗口,清除工作空间所有变量,清空命令行
    I=imread('pout.tif');
    J=imadjust(I,[0.2 0.5],[0 1]);%将0.2-0.5之间的灰度扩展到整个0-1范围,这种处理 对于强调感兴趣灰度区非常有用
    set(0,'defaultFigurePosition',[100,100,1000,500]);
    set(0,'defaultFigureColor',[1 1 1]);
    figure(1);
    subplot(121),imshow(I);         
    subplot(122),imshow(J);
    
    
    
    
    
    

    2、运行效果如下:

    展开全文
  • 对比度拉伸是一种简单的图像增强技术,它试图通过“拉伸”图像所包含的强度值范围以跨越所需的值范围来提高图像的对比度,例如相关图像类型允许的整个像素值范围。 它与更复杂的直方图均衡化不同,它只能对图像像素...
  • 题目:定义一个图像的对比度拉伸函数,函数名为myGrayScaleTransform,将输入图像的对比度线性平滑地拉伸到指定的灰度级区间,要求该函数的输入参数包括处理前的灰度图像img1 (如EXP1A.tif)、期望灰度级的参数区间...

    题目:定义一个图像的对比度拉伸函数,函数名为myGrayScaleTransform,将输入图像的对比度线性平滑地拉伸到指定的灰度级区间,要求该函数的输入参数包括处理前的灰度图像img1 (如EXP1A.tif)、期望灰度级的参数区间para,输出参数为处理后的灰度图像img2。

    定义函数为img2 = myGrayScaleTransform (img1, para),其中,参数para是一个长度为2的一维数组,用于表示期望灰度级区间的最小值和最大值,要求最小和最大值的取值范围限定在区间[0 255]之间,且最小值不能超过最大值,如指定区间为para = [50 120];线性平滑拉伸可以参考数据归一化的计算原理。

     

    实现思路:

    1.定义函数:

                  我们定义的函数有两个参数:图像img1和灰度级区间最小值、最大值的二维数组para。首先对para参数进行判断,若灰度级的最大值和最小值不符合要求则报错。

    若输入的参数没有问题,就开始对图像进行处理:先使用im2double函数将uint8类型的图像数据转换为double类型的,分别取图像矩阵的最大值和最小值,使用公式利用公式f=(img – min_i)/(max_i – min_i)把数据范围压缩到0~1之间的数值,即数据的归一化,以便计算。再使用公式img2 = (b - a) .* img2 + a还原图片像素的大小为para区间内的数值,最后使用函数uint8将图片数据转换为uint8的格式,以便输出。

    2.测试函数:

    使用imread函数读取图像'EXP1A.tif';

    分别定义灰度级para = [0,50]、 para = [50,120]、para = [150,250],并分别调用myGrayScaleTransform函数得到对比度拉伸后的图像;

              3.按题目要求显示图像。

     

    实现效果:

    实现源代码:

    clc;
    %读取图像
    img_a = imread('EXP1A.tif');
    
    para = [0,50];
    img_a2 = myGrayScaleTransform (img_a, para);
    
    para = [50,120];
    img_a3 = myGrayScaleTransform (img_a, para);
    
    para = [150,250];
    img_a4 = myGrayScaleTransform (img_a, para);
    
    %显示图像
    figure('NumberTitle', 'off', 'Name', '实验一第三题 EXP1A.tif 对比度拉伸'); 
    subplot(2,2,1);
    imshow(img_a);
    title('原图');
    
    subplot(2,2,2);
    imshow(img_a2);
    title('0~50');
    
    subplot(2,2,3);
    imshow(img_a3);
    title('50~120');
    
    subplot(2,2,4);
    imshow(img_a4);
    title('150~250');
    
    function img2 = myGrayScaleTransform (img1, para)
        a = para(1);
        b = para(2);
        if(a > b)
            error('para中参数,最小灰度值a不能超过最大灰度值b!');
        elseif(a < 0 || b > 250)
            error('para中参数,最小灰度值a和最大灰度值b的范围在区间[0,250]之间!');
        end
        img = im2double(img1);%将uint8类型的数据转换为double类型的同时,把数据范围由原来的0~255映射到0~1,可以看作数据的一种归一化,以便计算
        min_i = min(img(:));
        max_i = max(img(:));
        img2 = (img - min_i)./(max_i - min_i);%将图片压缩到0~1之间的数值
        img2 = (b - a) .* img2 + a;%还原图片像素的大小为para区间内的数值
        img2 = uint8(img2);%将图片数据转换为uint8的格式,以便输出
    end
    

     

    展开全文
  • 点运算又称为对比度增强、对比度拉伸或灰度变换,是一种通过图像中的每一个像素值进行运算的图像处理方式。。它将输入图像映射为输出图像,输出图像每个像素点的灰度值仅有对应的输入像素点的灰度值决定,运算结果...

    点运算又称为对比度增强、对比度拉伸或灰度变换,是一种通过图像中的每一个像素值进行运算的图像处理方式。。它将输入图像映射为输出图像,输出图像每个像素点的灰度值仅有对应的输入像素点的灰度值决定,运算结果不会改变图像内像素点之间的空间关系。其运算的数学关系式如下:

    其中,A(x,y)表示原图像,B(x,y)表示经过点运算处理后的图像,f表示点运算的关系函数。按照灰度变换的数学关系,点运算可以分为线性灰度变换、分段线性灰度变换和非线性灰度变换3种。接下来我们分别举例实现。

    1. 线性灰度变换

    假定原图像A(x,y)的灰度变换范围为[a,b],处理后的图像B(x,y)的灰度变换范围为[c,d],线性灰度变换运算的数学表达式为:

    在MATLAB图像处理工具箱中提供了一个灰度线性变换函数imadjust()

    close all;clear all;clc;
    %通过函数imadjust()对图像进行线性灰度变换
    gamma=0.5;  %设定调整线性度取值
    I=imread('F:/pao1.jpg');
    R=I;  %将图像数据赋值给R
    R(:,:,2)=0;  %将原图像变成单色图像,保留红色
    R(:,:,3)=0;
    R1=imadjust(R,[0.5 0.8],[0 1],gamma);  %利用函数imajust()调整R的灰度,结果返回R1
    G=I;
    G(:,:,1)=0;  %将原图像变成单色图像,保留绿色
    G(:,:,3)=0;
    G1=imadjust(G,[0 0.3],[0 1],gamma);  %利用函数imajust()调整G的灰度,结果返回G1
    B=I;
    B(:,:,1)=0;  %将原图像变成单色图像,保留蓝色
    B(:,:,2)=0;
    B1=imadjust(B,[0 0.3],[0 1],gamma);  %利用函数imajust()调整B的灰度,结果返回B1
    I1=R1+G1+B1;  %求变换后的RGB图像
    figure,
    subplot(131),imshow(I);
    subplot(132),imshow(R);
    subplot(133),imshow(R1);
    figure,
    subplot(131),imshow(I);
    subplot(132),imshow(G);
    subplot(133),imshow(G1);
    figure,
    subplot(131),imshow(I);
    subplot(132),imshow(B);
    subplot(133),imshow(B1);
    figure,
    subplot(121),imshow(I);
    subplot(122),imshow(I1);

    2. 分段线性灰度变换

    为了突出图像中感兴趣的目标或者灰度区间,可采用分段线性法,将需要的图像细节灰度拉伸,对比度增强。3段线性变换法运算的数学表达式如下:

    close all;clear all;clc;
    %分段线性灰度变换
    R=imread('F:/pao1.jpg');
    J=rgb2gray(R);  %将彩色图像数据R转换为灰度图像数据J
    [M,N]=size(J);  %获得灰度图像J的行列数M,N
    x=1;y=1;
    for x=1:M
        for y=1:N
            if (J(x,y)<=35);  %对灰度图像J进行分段处理,处理后的结果返回给矩阵H
                H(x,y)=J(x,y)*10;
            elseif(J(x,y)>35&J(x,y)<=75);
                H(x,y)=(10/7)*[J(x,y)-5]+50;
            else(J(x,y)>75);
                H(x,y)=(105/180)*[J(x,y)-75]+150;
            end
        end
    end
    figure,
    subplot(121),imshow(J);
    subplot(122),imshow(H);

    3. 非线性灰度变换

    当输出图像的像素点灰度值和输入图像的像素点灰度值不满足线性关系时,这种灰度变换都称为非线性灰度变换,我们以对数变换的非线性变换为例,讲解非线性灰度变换。变换公式如下:

    close all;clear all;clc;
    %基于对数变换的非线性灰度变换
    R=imread('F:/pao1.jpg');
    G=rgb2gray(R);  %转换成灰度图像
    J=double(G);  %数据类型转换为双精度
    H=(log(J+1))/10;  %进行基于常用对数的非线性灰度变换
    figure,
    subplot(121),imshow(G);
    subplot(122),imshow(H);

    总结:

    以上三种方法给出了三种不同类型的点运算,它们的相同之处在于都能够改变图像的显示灰度,不同之处在于采用的数学方法不同。用户在需要进行图形灰度变换时,根据实际情况选择不同的运算形式,用户可参照实例设计自己的灰度变换。


    ------想飞上天,和太阳肩并肩------

    展开全文
  • 二、图像的对比度拉伸变化,(调整灰度级m,函数斜率k,观看最后的图像显示结果) 使用如下对比度拉伸变换工具,进行动态范围的压缩: g=c*log(1+double(f));  拉伸的函数形式为: s=T(r)=1/(1+(m/r)^E)...
    一、将一幅图像转化为二值图像,可以使用如下函数: 
    
    BW = im2bw(I, level) %输出像素点小于level的像素,I是代表图像的变量,level是阈值,level属于[0 1].
    BW = im2bw(RGB, level)%将RGB彩色图像转换为二值图像,转换过程中先转化为灰度图像,再转换为二值图像

    二值图像:取值只有0和1的逻辑数组(logical型的数组)。如果是一个unit8的数组只包含0,1,则它不是二值数组。
    转化EXAMPLE:
    f=imread('p1.jpg');
    g=im2double(f);%将图形转化为double型的或者g=mat2gray(f);灰度图像,保证每个像素点的取值在0-1之间
    a=mean(g(:));%设置阈值,一般取矩阵的均值作为图像的阈值
    g=im2bw(g);
    t=im2bw(g,a);imshow(g),figure,imshow(t);%显示两个图像,如果想要看阈值的大小对图像的影响,设置这个值大于或者小于a
    

    ps:
    其他的图像转化函数,都是matlab的库函数
    im2unit8()  图像转换为无符号8位的整数
    im2unit16()  图像转化为无符号16位的整数
    mat2gray()  图像转换为灰度图像
    im2double()  图像转换为0-1的double类
    二、图像的对比度拉伸变化,(调整灰度级m,函数斜率k,观看最后的图像显示结果)
    使用如下对比度拉伸变换工具,进行动态范围的压缩:
    g=c*log(1+double(f));
     拉伸的函数形式为:
    s=T(r)=1/(1+(m/r)^E);
    g=1./(1+(m./(double(f)+eps)).^E);%eps可避免f出现溢出情况

    对比度拉伸即:使图像亮的地方更亮,暗的地方更暗,从而增加图像的可视细节

    展开全文
  • matlab开发-对比度拉伸和标准化。在图像上拉伸对比度并将图像从0规范化为1
  • 图像对比度拉伸实现一个明智的线性函数。
  • matlab对比度增强源代码,对比度增强是将图像中的亮度值范围拉伸或压缩成显示系统指定的亮度显示范围,从而提高图像全部或局部的对比度。输入图像中的每个亮度值通过一定的转换函数,对应于输出图像的一个显示值。
  • 将rgb图像转化为ycbcr,在直方图均衡化,实现彩色图片对比度的增强,图片效果较好,代码简单。图像不会失真。
  • matlab开发-彩色图像对比度增强。这个程序演示了色彩空间中对比度增强的概念。
  • 在数字图像中,空域中的对比度拉伸增强变换。用matlab编写的程序。
  • α\alphaα对图像效果的影响   (2)窗口半径 nnn对图像效果的影响   (3)阈值 ththth对图像效果的影响 五、结论和不足 六、参考 一、前言   现如今的医学图像由于其成像原理的限制,图像对比度都不是很高(如下...
  • 数字图像处理直方图拉伸matlab代码,其中输入的a为多光谱图像
  • matlab代码:%题目: 对比度拉伸 %意义:所期望观察的对象因对比度不足而不够清晰,需进行对比度拉伸。 %灰度值的分段线性映射 %已知条件:原图像的目标景物灰度范围[fa,fb],拉伸后范围在[ga,gb]。 %实现方法:...
  • 运行代码并为不同的操作输入不同的值,如带/不带背景的灰度切片、基本阈值操作、图像负片、对比度拉伸
  • 利用matlab增强图像对比度

    热门讨论 2014-03-31 15:03:59
    利用matlab增强图像对比度
  • 图像处理 对比度拉伸

    2018-11-22 13:52:11
    数字图像处理 对比度拉伸
  • 主要介绍了matlab图像灰度调整及imadjust函数的用法详解,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 图像处理中对比度拉伸matlab程序,对初学者了解对比度拉伸很有帮助哦,
  • 对比度拉伸、负值、幂律等图像灰度变换研究转换,位平面切片,单双阈值保持。 代码简单,容易理解。
  • 二、Python 实现代码 1) 核心函数: from PIL import Image from pylab import * # 自定义图像对比度拉伸函数 myGrayScaleTransformJ def myGrayScaleTransformJ(img1, para): # 若输入不合法,返回原图像 if (para...
  • 这是因为in_low越来越大,那么越来越多小于in_low的像素值被映射成一个值,对比度当然越来越高。 2.J4,J5和J6中图像的对比度会越来越小。因为in_high越来越大,那么越来越多大于in_high的像素值被映射一个值,对比...
  • 此功能允许设置全局图像强度阈值,从而导致对比度增强(按颜色量化的价格)。 这是一种原始的图像判别方式元素基于它们的颜色 - 增加一些,减少其他,根据它们与阈值的关系。 该贡献还包括一个包含此功能的小型 GUI...
  • 对数及对比度拉伸变换

    千次阅读 2016-08-04 20:17:28
    对数及对比度拉伸变换 对数和对比度拉伸变换是:动态范围操作的基本工具 表达式:g=c*log(1+f),其中c是一个常数,f是浮点数 对数变换:  应用:压缩动态范围(实现了图像灰度扩展和压缩...
  • 关于提高图像对比度的程序,希望对大家有用
  • 对数与对比度拉伸变换是进行动态范围处理的基本工具 对数变换的表达式:g = c*log(1+f),主要应用压缩动态范围 其中c是一个常数,f是浮点数, 图像类似: gamma曲线的形状可变,但是对数形状是固定的 当执行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 872
精华内容 348
关键字:

对比度拉伸matlab

matlab 订阅