精华内容
下载资源
问答
  • 对比度拉伸

    2008-06-11 07:56:04
    对比度拉伸对比度拉伸对比度拉伸
  • 图像处理 对比度拉伸

    2018-11-22 13:52:11
    数字图像处理 对比度拉伸
  • 运用本函数,可以使图像的对比度拉伸,效果比直接使用imadjust,此函数是冈萨雷斯 数字图像处理 上面的 运用本函数,可以使图像的对比度拉伸,效果比直接使用imadjust,此函数是冈萨雷斯 数字图像处理 上面的
  • 对比度拉伸 代码 对比度算法 数字图像处理
  • 对比度拉伸C语言实现

    2018-02-04 14:21:41
    对比度拉伸C语言实现....................................................................
  • 在8位灰度图像(C#)上实现分段线性对比度拉伸的程序。
  • matlab开发-对比度拉伸和标准化。在图像上拉伸对比度并将图像从0规范化为1
  • 题目:定义一个图像的对比度拉伸函数,函数名为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
    

     

    展开全文
  • 对比度拉伸.rar

    2011-11-17 22:51:21
    对比度拉伸.图像处理的算法,本科期间图像处理的代码,很有用的
  • 数字图像处理实验之对比度拉伸

    千次阅读 2019-07-17 15:38:42
    可以通过对比度拉伸提高图像对比度,显示更多细节。先来看看对比度拉伸的典型变换: 书本中(冈萨雷斯:数字图像处理第三版P69)的对比度拉伸变换函数图是这样的: 图3.10(b)低对比度拉伸图中,最低灰度级为91,...

    一幅图像中,最高灰度级和最低灰度级的差成为对比度。一幅低对比度的图像,看起来细节会少很多。可以通过对比度拉伸提高图像对比度,显示更多细节。先来看看对比度拉伸的典型变换:
    对比度拉伸典型变换
    书本中(冈萨雷斯:数字图像处理第三版P69)的对比度拉伸变换函数图是这样的:

    书中对比度拉伸变换函数图
    图3.10(b)低对比度拉伸图中,最低灰度级为91,最高灰度级为138,并且要将灰度值拉伸至[0, 255]。阈值处理的函数的图像即为P64图3.2第二个图像,其中k = 109。
    实验代码如下:

    % 读入图像
    img_1 = imread('Fig0310(b)(washed_out_pollen_image).tif');
    
    % max():返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值。
    % 再一次即可求得最高灰度级
    r_max = max(max(img_1));
    %max() 同理
    r_min = min(min(img_1));
    
    % 求输入图像的尺寸
    [r, c] = size(img_1);
    
    % 生成两张0图,一张用于对比度拉伸,一张用于阈值处理
    img_2 = zeros(r, c);
    img_3 = zeros(r, c);
    
    % 将输入图像转换成double型
    img_1s = double(img_1);
    
    % 计算斜率
    k = (255 - 0) / (r_max - r_min);
    % 灰度级总和
    sum = 0;
    
    for x = 1 : r
        for y = 1 : c
            % 对每个像素点进行拉伸,并赋值到新图像
            img_2(x, y) = k * (img_1s(x, y) - r_min);
            % 求灰度级总和
            sum = sum + img_1s(x, y);
        end
    end
    
    % 求阈值,这里阈值为平均值
    avg = sum / (r * c);
    
    % 阈值处理
    for x = 1 : r
        for y = 1 : c
            % 小于阈值赋值0
            if img_1s(x, y) < avg
                 img_3(x, y) = 0;
             % 大于阈值赋值1
            else
                img_3(x, y) = 1;
            end
        end
    end
    
    % 转换
    img_2 =  im2uint8(mat2gray(img_2));
    img_3 =  im2uint8(mat2gray(img_3));
    % 显示
    subplot(131), imshow(img_1);
    subplot(132), imshow(img_2);
    subplot(133), imshow(img_3);
    

    结果如下:
    结果对比

    展开全文
  • 对输入图像的负像进行对比度拉伸间接提升雾天图像的对比度,达到了节约运算时间的效果。针对由Lipschitz系数得到的图像结构信息设置自适应的参数,参数设置由关于Lipschitz系数的函数和关于局部像素块亮度平均值的函数...
  • 图像处理中对比度拉伸的matlab程序,对初学者了解对比度拉伸很有帮助哦,
  • VC++数字图像处理 对比度拉伸,基于VC++的数字图像处理实现对比度拉伸
  • 点运算又称为对比度增强、对比度拉伸或灰度变换,是一种通过图像中的每一个像素值进行运算的图像处理方式。。它将输入图像映射为输出图像,输出图像每个像素点的灰度值仅有对应的输入像素点的灰度值决定,运算结果...

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

    其中,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);

    总结:

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


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

    展开全文
  • 对比度拉伸 数字图像处理 vc dip 对比度拉伸 数字图像处理 vc dip
  • 对比度拉伸变换对图像进行对比度拉伸变换,压缩动态范围,将我们所关注的边界特征信息详细化,从而使得输出图像亮区域更亮,暗区域更暗,提高了图像的对比度。 opencv中的 LUT函数(look up table)为查表函数, ...
  • C语言的 影像的对比度拉伸和影像直方图均衡化收集整理的代码,可运行。
  • 图像处理程序之对比度拉伸,用Visual C++实现了对图像的对比度拉伸,算法可靠。
  • 对数及对比度拉伸变换

    千次阅读 2016-08-04 20:17:28
    对数及对比度拉伸变换 对数和对比度拉伸变换是:动态范围操作的基本工具 表达式:g=c*log(1+f),其中c是一个常数,f是浮点数 对数变换:  应用:压缩动态范围(实现了图像灰度扩展和压缩...
  • 冈萨雷斯数字图像处理(第三版)matlab代码 图3.10 对比度拉伸
  • OpenCV学习笔记(一)对比度拉伸

    万次阅读 2016-12-06 14:27:42
    最简单的就是对比度拉伸。  对比度拉伸技术是通过扩展图像灰度级动态范围来实现的,它可以扩展对应的全部灰度范围。提高图像的对比度可以增强图像各个区域的对比效果,对图像感兴趣的部分进行增强,而对图像不感...
  • OpenCV图像增强之对比度拉伸 C++

    千次阅读 2019-02-19 17:51:22
    下图是典型的对比度拉伸变换。点(r1,s1)和(r2,s2)的位置控制变换函数的形状。 如果r1=r2,s1=s2,则变换为一线性函数; 若r1=r2,s1=0且s2=L-1,则是阈值处理函数,产生一幅二值图像; 处理一幅8bit低对比度图像,(r1,...

空空如也

空空如也

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

对比度拉伸