精华内容
下载资源
问答
  • 计算图像对比度

    2018-10-28 22:16:11
    MATLAB计算图像对比度的程序。包括4邻域和8邻域两种方法。还有计算对比度的算法文档。
  • 这是一组Matlab函数,可用于计算输入图像(自然场景)的局部对比度统计信息。 使用旨在模拟LGN接收场的多尺度滤波器来计算局部对比度图像上的局部对比度大小图以直方图形式汇总,然后以两种方式进行表征:1)使用...
  • 数字图像的亮度与对比度 亮度:设uint8型的灰度图像的二维矩阵为A,设置常整数-255<=c<=255,则A+c就表示亮度的调整。若A+c超过255则自动设置为255,反之若A+c小于0则自动设置为0 对比度:设uint8型的灰度...

    数字图像的亮度与对比度
    亮度:设uint8型的灰度图像的二维矩阵为A,设置常整数-255<=c<=255,则A+c就表示亮度的调整。若A+c超过255则自动设置为255,反之若A+c小于0则自动设置为0


    对比度:设uint8型的灰度图像的矩阵为A,设置正常数c>0与0~255之间的整数k,

    表示以k为灰度中心,将对比放大/缩小 c倍。通常,因对比度常定义为最大最小灰度比值,故假设 k=0,注意:结果仍会自动转化为 uint8型的数据。

                

    cv::Mat 处理:

    计算对比度(8邻域):

    void Contrast(Mat InputImg, float& con)
    {
        Mat GRAYimg;
        if (InputImg.channels() != 1)
        {
            cvtColor(InputImg, GRAYimg, CV_BGR2GRAY);
        }
        else
        {
            GRAYimg = InputImg.clone();
        }   
        int i, j;
        int w, h;
        w = InputImg.cols;
        h = InputImg.rows;
        float square_sum = 0;
        for (int i = 1; i<GRAYimg.rows-1; i++)
        {
            for (int j = 1; j<GRAYimg.cols-1; j++)
            {        
                square_sum += (float(GRAYimg.at<uchar>(i, j - 1)) - float(GRAYimg.at<uchar>(i, j)))*(float(GRAYimg.at<uchar>(i, j - 1)) - float(GRAYimg.at<uchar>(i, j))) +
                    (float(GRAYimg.at<uchar>(i - 1, j - 1)) - float(GRAYimg.at<uchar>(i, j)))*(float(GRAYimg.at<uchar>(i - 1, j - 1)) - float(GRAYimg.at<uchar>(i, j))) +
                    (float(GRAYimg.at<uchar>(i - 1, j)) - float(GRAYimg.at<uchar>(i, j)))*(float(GRAYimg.at<uchar>(i - 1, j)) - float(GRAYimg.at<uchar>(i, j))) +
                    (float(GRAYimg.at<uchar>(i - 1, j + 1)) - float(GRAYimg.at<uchar>(i, j)))*(float(GRAYimg.at<uchar>(i - 1, j + 1)) - float(GRAYimg.at<uchar>(i, j))) +
                    (float(GRAYimg.at<uchar>(i, j + 1)) - float(GRAYimg.at<uchar>(i, j)))*(float(GRAYimg.at<uchar>(i, j + 1)) - float(GRAYimg.at<uchar>(i, j))) +
                    (float(GRAYimg.at<uchar>(i + 1, j + 1)) - float(GRAYimg.at<uchar>(i, j)))*(float(GRAYimg.at<uchar>(i + 1, j + 1)) - float(GRAYimg.at<uchar>(i, j))) +
                    (float(GRAYimg.at<uchar>(i + 1, j)) - float(GRAYimg.at<uchar>(i, j)))*(float(GRAYimg.at<uchar>(i + 1, j)) - float(GRAYimg.at<uchar>(i, j))) +
                    (float(GRAYimg.at<uchar>(i + 1, j - 1)) - float(GRAYimg.at<uchar>(i, j)))*(float(GRAYimg.at<uchar>(i + 1, j - 1)) - float(GRAYimg.at<uchar>(i, j))); 
            }
        }
        con = square_sum / (8.0*(w - 2)*(h - 2) );   //+ 5.0 * (2 * (w - 2) + 2 * (h - 2) + 4 * 3.0)
        std::cout << "constrast:" << con << std::endl;
    }

    计算亮度(平均灰度值):

    void brightnessException(Mat InputImg, float& light)
    {
        float a = 0;
        float num = 0;
        Mat GRAYimg;
        if (InputImg.channels() != 1)
        {
            cvtColor(InputImg, GRAYimg, CV_BGR2GRAY); 
        }
        else
        {
            GRAYimg = InputImg.clone();
        }
        for (int i = 0; i< GRAYimg.rows; i++)
        {
            for (int j = 0; j< GRAYimg.cols; j++)
            {
                num = num + 1;
                a = a + float(GRAYimg.at<uchar>(i, j));
            }
        }    
        light = a/num;
        std::cout << "gray:" << light << std::endl;
    }

    Matlab代码:

    [m,n] = size(I);  %求原始图像的行数m和列数n
    g = padarray(I,[1 1],'symmetric','both');  %对原始图像进行扩展,比如50*50的图像,扩展后变成52*52的图像,
    %扩展只是对原始图像的周边像素进行复制的方法进行
    [r,c] = size(g);%求扩展后图像的行数r和列数c
    g = double(g); %把扩展后图像转变成双精度浮点数
    k=0; %定义一数值k,初始值为0
    l=0;
    num=0;

    %计算对比度
    for i=2:r-1
        for j=2:c-1
          k = k+(g(i,j-1)-g(i,j))^2+(g(i-1,j)-g(i,j))^2+(g(i,j+1)-g(i,j))^2+(g(i+1,j)-g(i,j))^2+...
         (g(i-1,j-1)-g(i,j))^2+(g(i-1,j+1)-g(i,j))^2+(g(i+1,j-1)-g(i,j))^2+(g(i+1,j+1)-g(i,j))^2;
        end
    end

    cg1 = k/(8*(m-2)*(n-2)+5*(2*(m-2)+2*(n-2))+4*3);%求原始图像对比度

    %计算亮度
    for i=1:m
        for j=1:n
          l=l+double(roi1(i,j));
          num=num+1;
        end
    end

    cl1= l/num;

    展开全文
  • 基于matlab,读取图像文件并,并计算图像对比度计算公式采用:各中心像素灰度值与周围8近邻像素灰度值之差的平方之和再除以差的个数。 注:直接运行,选取路径即可输出计算结果,十分方便。适用于大量图片待...
  • 如何用MATLAB计算图像标准差,清晰度和全局对比度,求程序
  • 1,图像标准差;2,图像对比度;3,图像清晰度 上述三个问题的Matlab程序
  • 基于matlab,读取图像文件并,并计算图像对比度计算公式采用:各中心像素灰度值与周围8近邻像素灰度值之差的平方之和再除以差的个数。 注:直接运行,选取路径即可输出计算结果,十分方便。适用于大量图片待...
  • 【实验名称】 图像对比度调整

    【实验名称】

    图像对比度调整

    【实验目的】

    1. 通过本次实验掌握图像对比度自动调整技术;
    2. .熟悉使用库函数imhist、histeq;

       

     【实验内容】

    1. 利用库函数imhist计算并分别显示下图(图1)中图像的直方图,并分析图像质量;
    2. 利用熟悉的图像处理技术对以上图像进行图像处理,比对效果,最后推荐一种方法。

     【实验代码】

    显示各个图像以及直方图(subplot形式显示)

    clc;clear;close all;
    img1=imread('实验4_Fig1.tif');
    img2=imread('实验4_Fig2.jpg');
    img3=imread('实验4_Fig3.jpg');
    % 图1
    subplot(2,3,1);
    imshow(img1);
    subplot(2,3,4);
    imhist(img1);
    % 图2
    subplot(2,3,2);
    imshow(img2);
    subplot(2,3,5);
    imhist(img2);
    % 图3
    subplot(2,3,3);
    imshow(img3);
    subplot(2,3,6);
    imhist(img3);
    

    线性插值处理:

    clc;clear;close all;
    % 线性插值
    img1=imread('实验4_Fig3.jpg');
    [m,n,k]=size(img1);
    a=double(img1);
    amin=0;
    amax=255;
    alow=min(a(:));
    ahigh=max(a(:));
    a2=amin+(a-alow)*(amax-amin)/(ahigh-alow);
    img2=uint8(a2);
    subplot(2,2,1)
    imshow(img1)
    title('原图')
    subplot(2,2,2)
    imshow(img2)
    title('自动调整后')
    subplot(2,2,3)
    imhist(img1)
    subplot(2,2,4);
    imhist(img2)
    

    非线性变换处理(对数变换)

    clc;clear;close all;
     I=imread('实验4_Fig2.jpg');             
     subplot(1,2,1),imshow(I);
     title(' 原图像');
     axis([50,250,50,200]);                
     J=double(I);
     J=40*(log(J+1));
     H=uint8(J);
     subplot(1,2,2),imshow(H);
     title(' 非线性变换--对数变换图像');
     axis([50,250,50,200]);
    

    直方图等值化处理

    clc;
    clear;
    close all;
    img1=imread('实验4_Fig1.tif');
    subplot(1,2,1);
    imshow(img1);
    title('原图像');
    img2=histeq(img1);
    subplot(1,2,2);
    imshow(img2);
    title('直方图等值化后图像');
    

    【运行结果】

    分别显示三个图像以及对应的直方图(subplot形式显示)

    线性插值:

     

    非线性变换之对数变换

     

     

     直方图等值化

     

     

     

    展开全文
  • matlab 图像对比度扩展 代码
  • 一键式窗口化的界面,用于计算多幅图像序列的熵和对比度
  • LCC算法全名local color correction,用于增强图像对比度,英文全文在IPOL可以下载。 算法设计思路 计算输入图像的mask image 将输入与mask image进行计算,完成2幅图像的组合 Matlab实现 下面给出Matlab实现的...

    ISP Matlab 图像对比度增强——LCC算法学习

    LCC算法全名local color correction,用于增强图像的对比度,英文全文在IPOL可以下载。

    算法设计思路

    • 计算输入图像的mask image
    • 将输入与mask image进行计算,完成2幅图像的组合

    Matlab实现

    下面给出Matlab实现的主体部分,比较简单。

    %% 算法参数配置
    Rad = 2;
    sigma = 2;
    filter_kernel1 = fspecial('gaussian',2*Rad+1 , sigma);
    pix_width = 8;
    pix_max = 2^pix_width;
    pix_mid = 2^(pix_width-1);
    
    %% 算法主体
    mask_img = (img_in(:,:,1) + img_in(:,:,2) + img_in(:,:,3))./3;
    mask_img = pix_max - mask_img;
    gaus_out = imfilter(mask_img(:,:,:),filter_kernel1,'symmetric');
    img_out = zeros(m, n, d);
    
    test = (2.^((pix_mid-gaus_out(:,:,:))./pix_mid));
    
    for ch =1:1:3
        img_out(:,:,ch) = pix_max.*(img_in(:,:,ch)./pix_max).^(2.^((pix_mid-gaus_out(:,:,:))./pix_mid));
    end
    
    

    测试

    采用莫里斯大教堂作为测试输入,分别选择了一副稍亮和一副偏暗的图像送入算法进行处理,在输入图像动态范围较宽时,测试算法自身的适应型能力。

    • 测试用例1
      在这里插入图片描述
    • 测试用例2
      在这里插入图片描述
      针对2幅场景, 该算法均对图像有一定的改善,实际针对视频场景需要评估。
    展开全文
  • matlab图像尺寸扩展代码我正在为这项工作添加修改。 原始工作是:C. Arteta,V。Lempitsky,JA Noble,A。Zisserman学习使用非重叠的极端区域检测...5-(可选)MATLAB并行计算工具箱 该代码已在Ubuntu11.04-12.04和W
  • 实现线性对比度展宽算法 实验过程 读入图像到矩阵F 得到F的行列数与颜色通道数:m,n,c 如果颜色通道数c>1,则将彩色图像转化为灰度图rgb2gray 初始化输出矩阵G 对于G的每一行i 对于G的每一列j 根据公式(教材P36...

    实验内容

    实现线性对比度展宽算法

    实验过程

    读入图像到矩阵F
    得到F的行列数与颜色通道数:m,n,c
    如果颜色通道数c>1,则将彩色图像转化为灰度图rgb2gray
    初始化输出矩阵G
    对于G的每一行i
         对于G的每一列j
         根据公式(教材P36),由F(i,j)计算G(i,j)
    

    测试代码

    fa = 5;fb = 30;
     	ga = 80;gb = 100;
        ImPath='.\im\pict1.png';
        J=ContrastWidening(ImPath,fa,fb,ga,gb);
        figure,imshow(ImPath);
    figure,imshow(J);
    

    实验所需图片

    链接:https://pan.baidu.com/s/1LaxnZdLeY3LnKKv276E0pA
    提取码:vk8y

    实验源码

    function J=ContrastWidening(ImPath,fa,fb,ga,gb)
    x = imread(ImPath); %读取图像到矩阵I
    [m,n,c] = size(x);  %读取图像的行数和列数
    if(c>1)
        I=rgb2gray(x);
    end
    J=zeros(m,n);
    I = double(I);  %将I数据转换成double类型
    k1 = ga/fa;     %计算比例系数k1,k2,k3
    k2 = (gb-ga)/(fb-fa);
    k3 = (255-gb)/(255-fb);
    for i=1:m
        for j=1:n
            if I(i,j)<fa
                J(i,j) = k1*I(i,j);
            elseif I(i,j)<fb
                J(i,j) = k2*(I(i,j)-fa)+ga;
            else
                J(i,j) = k3*(I(i,j)-fb)+gb;
            end
        end
    end
    J = uint8(J);  %转换uint8编码
    end
    

    实验结果

    学如逆水行舟,不进则退
    
    展开全文
  • matlab图像尺寸扩展代码遗传算法处理器(GAP) 这是遗传算法在0.18μmCraft.io中的晶体管级数字CMOS实现。 由于遗传算法的计算量很大,因此通常需要很长时间才能找到最佳解决方案。 硬件实现是通过加快遗传算法的...
  • 基于Matlab的图像清晰评价方法研究,利用MATLAB平台,计算图像清晰,给出评价函数,多种方法对比求最优解
  • matlab图像尺寸扩展代码PTU_Reader /插件读取PicoQuant ptu / pt3 FLIM TTTR图像文件。 它基于FrançoisWaharte和PicoQuant开发的插件。 如何安装插件 您需要先下载并安装或在计算机上。 并将其放在ImageJ / FIJI的...
  • MATLAB实现对比度计算

    2021-04-05 20:21:34
    计算I的对比度。 源码实现 function [res] = Computers(G) res = 0; [m,n] = size(G); Lc = 4*(n-2)*(m-2)+2*(m-2)*3+2*(n-2)*3+4*2; % 算出底数 % 使用全负一矩阵进行包围 a= ones(n+2,m+2); a=-a; for i =2:n+...
  • 图像对比度

    热门讨论 2013-02-03 16:29:05
    matlab 代码可以快速有效的进行图像对比度计算
  • 可以选择将 PCA 模型应用于粗糙度参数(需要 PLS 工具箱) 基本图像处理: - 裁剪,调整大小- 直方图均衡过滤: - 平均- 对比度增强适用于大多数类型的图像格式: JPEG、TIFF、BMP 等(有关格式类型,请参阅 imread...
  • 我们的小组假设,在公海出海时,大部分高对比度边缘的时间平均数相对接近于水平角。 相反,假设海上自主船只的许多潜在障碍将由垂直角或接近垂直角的边缘组成。 此类障碍物的一些示例可能包括另一艘船,灯塔,悬崖等...
  • 实现线性对比度展宽算法 实验步骤 设置参数 读入图像到矩阵F 得到F的行列数m,n, 初始化输出矩阵G 对于G的每一行i,对于G的每一列j。由F(i,j)计算G(i,j) 实验准备 参数设置:fa = 50;fb = 30; ga = 80; gb = 100;...
  • 直方图,改对比度计算均值、方差和信息熵实现
  • 这是因为人眼的视觉对于误差的敏感并不是绝对的,其感知结果会受到许多因素的影响而产生变化(例如:人眼对空间频率较低的对比差异敏感较高,人眼对亮度对比差异的敏感较色度高,人眼对一个区域的感知结果会受...
  • 采用滑动邻域操作对声纳图像进行了对比度增强处理;重点介绍了MATLAB下的数据并行编程,利用分布式数组设计了集群环境下的图像增强并行算法。实验结果表明,MATLAB强大的内部函数使得并行计算易于实现,有效地提高了...
  • 运行代码并为不同的操作输入不同的值,如带/不带背景的灰度切片、基本阈值操作、图像负片、对比度拉伸。
  • 此脚本计算灰质和白色之间的对比度基于信号强度方程的小鼠脊髓物质梯度回波成像序列中的灰质和白质。 T1、T2、 灰质和白质的 T2-star 值取自迈耶兰德等人。 医学中的磁共振 40:789-791 (1998))
  • 改变图像的静态matlab代码dcan-张量流 客观的 使用Chen等人创建的(DCAN)模型检测人U2OS细胞图像中的细胞核边界。...在MATLAB中运行fmeasureAll()以计算每个图像的焦距。 确保将fmeasure的功能,改变线10 fmeasureAll
  • 在本文中,我们提出了一个非常简单但有效的度量标准,用于基于对比度高的图像通常与对比度增强的图像更相似的事实来预测对比度改变的图像的质量。 具体来说,我们首先通过直方图均衡生成增强的图像。 然后,我们使用...
  • 计算图像中纹理的统计测量值像对比度、相关性、能量和同质性

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 161
精华内容 64
关键字:

matlab计算图像对比度

matlab 订阅