精华内容
下载资源
问答
  • 此代码演示使用幂律变换进行图像增强
  • 通过映射进行图像幂律变换
  • 它演示了图像的幂律变换
  • 对比度拉伸、负值、幂律等图像灰度变换研究转换,位平面切片,单双阈值保持。 代码简单,容易理解。
  • Matlab幂律变换及直方图均衡化

    千次阅读 2020-09-27 12:46:35
    1、实现幂律变换,可以尝试调整gamma数值,观察图像变换。分析Lena图像(灰度)在不同gamma数值下,图像灰度变换的特点。 2、观察Lena图像的直方图。实现Lena图像的直方图均衡,观察效果。 二、函数分析: 1...

    一、目标:

           1、实现幂律变换,可以尝试调整gamma数值,观察图像变换。分析Lena图像(灰度)在不同gamma数值下,图像灰度变换的特点。

           2、观察Lena图像的直方图。实现Lena图像的直方图均衡,观察效果。

     

    二、函数分析:

    1、幂律变换:

                又叫幂次变换、伽马矫正。

                幂次变换的基本表达式为:y=cxr+b(注:这里的r是在指数位置)

                其中c、r均为正数。与对数变换相同,幂次变换将部分灰度区域映射到更宽的区域中。当r=1时,幂次变换转变为线性变换。

               (1)当r<0时,变换函数曲线在正比函数上方。此时扩展低灰度级,压缩高灰度级,使图像变亮。这一点与对数变换十分相似。

                (2)当r>0时,变换函数曲线在正比函数下方。此时扩展高灰度级,压缩低灰度级,使图像变暗。

                                     

                                                                图1 不同gamma数值曲线

    2、imadjust()

             定义:进行图像灰度的调整

          形式:J=imadjust(I,[low_in;high_in],[low_out;high_out],gamma)

              描述:将灰度图像I中的灰度值映射成输出图像J中的新值,使得low_in和high_in之间的值映射成low_out和high_out之间的值。low_in,high_in,low_out,high_out的值必须在0到1之间。低于low_in的值和高于high_in的值被去除。可用一个空矩阵[]来替代[low_in; high_in]或者[low_out; high_out],这样就默认为[0 1]。参数gamma指定了曲线的形状,该曲线用来映射I的亮度值。如果gamma小于1,映射被加权到更高的输出值。如果gamma大于1,映射被加权到更低的输出值。如果省略了函数的参量,则gamma默认为1(线性映射)。 

     

    3、imhist()

             定义:获取图像的直方图数据

             形式:imhist(I)

                        imhist(I,n)

                        imhist(X,map)

              描述:

                  对于imhist(I), 直接统计该图的直方图,灰度图为256个等级;

                  对于imhist(I,n),I为灰度的输入图像,n为指定的灰度级数目,缺省值为256;

                  对于hist(X,map)计算和显示索引色图像X的直方图,map为调色板。用stem(x,counts)同样可以显示直方图。counts和x分别为返回直方图数据向量和相应的彩色向量。

     

    4、histeq()

                  定义:利用直方图均衡化增强对比度

                  形式:J = histeq(I,hgram)

                             J = histeq(I,n)

                             J = histeq(I)

                    描述:变换灰度图像I,使输出灰度图像J的hgram直方图与目标直方图hgram近似匹配。 

    三、代码展示:

    % 1、实现幂律变换,可以尝试调整gamma数值,观察图像变换。
    %    分析Lena图像(灰度)在不同gamma数值下,图像灰度变换的特点。
    %    提示:J = imadjust(I,[low,high],[bottom,top],gamma)
    %
    % 2、观察Lena图像的直方图。实现Lena图像的直方图均衡,观察效果。
    %
    % @author: jackma
    % @time:   2020-9-26 23:39
    % @URL:    www.jackrma.com
    % @Copyright:博客所有权归本人和CSDN所有,如有转载请在显著位置给出博文
    %            链接和作者姓名,否则本人将付诸法律。
    % @edit:   
    
    % 1. 实现幂律变换(幂次变换)
    imgrgb = imread('lena512color.BMP'); %读取lena小姐姐真彩色图像
    imggray = rgb2gray(imgrgb); %将rgb图像转换成灰度图像
    figure('Name', '对比gamma数值实现幂律变换'); %设置标题
    subplot(221);
    imshow(imggray);%显示灰度图像
    title('原始灰度图像');
    
    I = imadjust(imggray,[0 1],[0 1],0.3);%grammer值为0.3
    subplot(222);
    imshow(I);
    title('gamma值为0.3灰度图像');
    
    J = imadjust(imggray,[0 1],[0 1],0.8);%grammer值为0.8
    subplot(223);
    imshow(J);
    title('gamma值为0.8灰度图像');
    
    K = imadjust(imggray,[0 1],[0 1],1.7);%grammer值为1.7
    subplot(224);
    imshow(K);
    title('gamma值为1.7灰度图像');
    
    
    
    % 2.直方图
    figure('Name', 'gamma值为0.3的图像直方图数据'); %设置标题;
    imhist(I);%gamma值为0.3的图像直方图数据
    
    G=histeq(imggray,256);%利用直方图均衡化增强对比度
    figure('Name', '直方图均衡化数据');
    imhist(G);
    
    figure('Name', '直方图均衡化');
    imshow(G);
    

    四、结果展示及分析:

     

                                                                                            图2 对比gamma数值实现幂律变换

    分析:由于只看gamma数值变换对图像的影响,所以在函数J=imadjust(I,[low_in;high_in],[low_out;high_out],gamma)中只调整了gamma数值,显然当gamma数值小于1时,图像加亮、减暗。当gamma数值大于1时,图像加暗、减亮。

     

                                                                    图3 gamma值为0.3的直方图数据和直方图均衡化数据

    分析:上左图选取的直方图数据来自gamma值为0.3的图像(图2中第2副图),因为当gamma值为0.3时,图像加亮、减暗,显然从直方图数据可以看出左图0-130数据几乎为0,数据都集中在130-250之间,符合图像加亮、减暗特征。当进行直方图均衡化后,从右图看出,数据都均匀分布。

                                                     图4 直方图均衡化输出图像

    分析:由图3右图看出直方图均衡化后数据均匀分布,图4与图2中gamma值为0.3的图像对比可以看出,图像更饱满,细节更明显。

     

     

     

    展开全文
  • MFC计算机图形学幂律变换,反转,线性变换程序源代码,可直接导入VC6.0工程运行,在Debug中有可执行程序。
  • java图像处理之幂律变换

    千次阅读 2019-04-23 21:57:02
    对图像做幂律变换处理,当γ取值(0,1)可以将图像较暗的灰度值映射到更大的灰度值,同时较亮部分变化较小;γ取值(1,+∞)可以将较亮部分映射到更低的亮度,而更暗的部分变化较小。 处理彩色图像,只需要将RGB...

            幂律(伽马)变换公式:s = cr^\gamma,γ取值范围(0,+∞)

            对图像做幂律变换处理,当γ取值(0,1)可以将图像较暗的灰度值映射到更大的灰度值,同时较亮部分变化较小;γ取值(1,+∞)可以将较亮部分映射到更低的亮度,而更暗的部分变化较小。

            处理彩色图像,只需要将RGB取出,分别进行幂律变换即可。公式中,c可以取值255,r = a/255,a为像素上RGB分量之一,那么整个公式的取值范围为(0,255),不考虑计算过程的四舍五入的话,幂律变换的操作是可逆的。

    实现代码如下:

    public void gammaTranverse(BufferedImage image, double param) {
    		for (int i = 0; i < image.getWidth(); i++) {
    			for (int j = 0; j < image.getHeight(); j++) {
    
    				// 将rgb转换为各个值
    				int rgb = image.getRGB(i, j);
    				double R = (rgb >> 16) & 0xff;
    				double G = (rgb >> 8) & 0xff;
    				double B = rgb & 0xff;
    
    				// 进行伽马变换
    				R = 255 * Math.pow(R / 255, param);
    				G = 255 * Math.pow(G / 255, param);
    				B = 255 * Math.pow(B / 255, param);
    				// 将值转换为rgb
    				rgb = ((clamp(255) & 0xff) << 24) | ((clamp((int) R) & 0xff) << 16) | ((clamp((int) G) & 0xff) << 8)
    						| ((clamp((int) B) & 0xff));
    				image.setRGB(i, j, rgb);
    			}
    		}
    	}

    测试结果:

    1、原图。这是一张光线暗到几乎很难直接看到地面物体的航拍影像。通过幂律变换进行处理,增强较暗影像。

    2、γ取值为0.4,通过幂律变换处理后效果,可以看到影像增强效果非常明显,影像大部分区域由几乎不可见变得可见。

    3、这是一幅光线比较强,且受到云雾干扰的影像。

    4、γ取值为2处理后效果,影像整体变暗,但对比度更明显,受光线和云雾干扰造成的泛白现象减弱,整体视觉效果有所提升。

    展开全文
  • 针对显著性检测方法生成显著图存在对比度低、目标区域细节不明显、检测区域不准、背景抑制效果不足的问题,提出幂律变换和IGLC算法的显著性目标检测方法。利用幂律变换函数优化IG算法,彻底抑制显著图的背景区域。经...
  • matlab幂律变换代码数字图像处理 四年级第二学期实验室使用MATLAB完成数字图像处理代码 关于项目 该存储库包含使用WebGL和GLSL的6个项目。 这6个项目是: 切片图像并旋转90度 直方图均衡 强度转换 形态学 高斯3 * 3...
  • 题目:选择合适的基本灰度变换模型及其参数,通过该变换增强测试图像EXP2C.tif的全局对比度。...选择幂律(伽马)变换模型来增强图像的对比度,幂律变换的模型为   在实验中将用X来表示伽马值γ。 步骤: 1...

    题目:选择合适的基本灰度变换模型及其参数,通过该变换增强测试图像EXP2C.tif的全局对比度。

    说明:要求设置合适的模型参数,以保证对比度增强后的图像不会丢失过多的图像细节信息。

     

    实现思路:

    选择幂律(伽马)变换模型来增强图像的对比度,幂律变换的模型为

                                            s=cr^{\gamma }

    在实验中将用X来表示伽马值γ。

    步骤:

    1.将图像归一化为0~255的double的图像,以便计算;

    2.将图像数据代入幂律变换公式C*(img .^ X)中,根据所给参数处理图像;

    3.通过不断调整幂律变换的参数伽马值X,输出图像;

    4.分别查看和对比不同参数输出的图像情况,找到一个最适合的伽马值;

    5.分析处理结果:当伽马值X为3时,图像处理结果有点“偏淡”,即一些细节看不清;当伽马值X为4时,图像处理效果比较好,细节比较明显;当伽马值X为5时,图像处理结果中有些地方“太暗了”,效果没有伽马值X为4时好;

    6.得出结论:通过比较各参数输出图像的对比度情况,得出参数伽马值X为4时处理效果最好。

     

    实现效果:

    在同一个图形界面上演示对比度线性拉伸前后的图像

                                                      图1 幂律变换各参数结果图

    实现源代码:

    function img2 = myImageMiLv(img1,C,X)
       
        img = im2double(img1);
        img2 = C*(img .^ X);%进行幂律变换
    end
    
    clc;
    clear;
    
    img1 = imread('EXP2C.tif');
    
    figure('NumberTitle', 'off', 'Name', '实验二 第二题'); 
    subplot(2,2,1);
    imshow(img1);
    title('原始图像');
    
    C = 1;
    X = 3;
    img2 = myImageMiLv(img1,C,X);
    subplot(2,2,2);
    imshow(img2);
    title(['C:',num2str(C),'    X:',num2str(X)]);
    
    C = 1;
    X = 4;
    img2 = myImageMiLv(img1,C,X);
    subplot(2,2,3);
    imshow(img2);
    title(['C:',num2str(C),'    X:',num2str(X)]);
    
    C = 1;
    X = 5;
    img2 = myImageMiLv(img1,C,X);
    subplot(2,2,4);
    imshow(img2);
    title(['C:',num2str(C),'    X:',num2str(X)]);

     

    展开全文
  • matlab幂律变换代码ECE1512数字图像处理及其应用(在机器学习领域) 本课程是关于图像处理的。 该存储库包含我在本课程中的工作。 (2019年冬季)即将添加工作。 所有的代码都是用Matlab编写的。 应用了三种图像增强...
  • matlab幂律变换代码图像和视频处理 此存储库包括用MATLAB编写的图像和视频处理课程的教程代码。 每个教程都包含不同的任务,这些任务是从头开始实现的。 教程-1 给定RGB图像,使用不同的颜色模型分别提供强度和颜色...
  • matlab幂律变换代码雪崩_睡眠_fMRI_2019 主要功能: 'clusters_labeling',检测并标记连续的共同激活的体素(即,根据点过程变换的超阈值体素)的簇。 'clusters2sparse',将簇标签的4D矩阵转换为稀疏表示。 'sparse...
  • 对比度增强包 一个包含用于各种对比度增强技术(例如对数变换,指数变换,幂律变换,直方图滑动,直方图拉伸和直方图均衡)的代码的存储库
  • 图像增强实验 a. 图像增强直方图均衡方法。 湾线性变换方法。 C。 幂律变换方法。 d. 拉普拉斯图像增强方法。 e. 结合空间增强方法。
  • 在数字图像处理学习笔记(八)中,已对图像增强之线性变换、对数变换、幂律变换、分段线性变换、灰度级分层等做过详细理论论述,本文将对上述理论知识做实践方面的实现。 具体理论知识可参考我之前的博文:数字图像...
  • matlab幂律变换代码MATLAB-图像处理工具-V1 对于该项目,我使用了内置的MATLAB函数,此外,我使用了“手动代码”来执行所需的任务。 我已经尽力仅通过使用MATLAB GUIDE工具制作一个友好的UI,尽管我可以将其与Visual...
  • matlab幂律变换代码使用Matlab进行基本图像处理 该存储库包含基本的图像处理matlab代码文件,这是我在“使用Matlab进行数字图像处理”学期课程中练习的。 我已经添加了所有作业和实验室练习文件。 为混乱表示歉意。 ...
  • matlab幂律变换代码SSS ADCS软件 这是一个存储库,其中包含我作为UC Davis航天和卫星系统俱乐部ADCS软件团队的一部分工作的项目的代码。 以下是此存储库中包含的每个文件夹的说明。 Arduino的 该文件夹包含用于与...
  • 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、imadjust、stretchlim函数简介 ...imadjust函数是matlab中常用的灰度变换函数,在进行求负片、灰度扩展和...

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

     

    文章目录

     


    前言

    在进行医学图像处理时灰度变换是非常重要的操作手段,本节我将学习imadjust在灰度变换方面的应用,另外还将引入stretchlim函数作为灰度变换区间的辅助。

     

    一、imadjust、stretchlim函数简介

    imadjust函数是matlab中常用的灰度变换函数,在进行求负片、灰度扩展和幂律变换时非常有用。

    imadjust函数用法非常简单,具体的用法格式是:

    g1=imadjust(f,[low_in high_in],[low_out high_out],gamma);

    在这里g1指的是变换后的图像,具体的操作指的是将[low_in high_in]之间的值映射到[low_out high_out]之间,实现灰度扩展;gamma指的是扩展的方式,一般默认采用gamma=1的线性变换方式,当然在幂律变换过程中gamma可以不为1.

    如果gamma>1,输出图像关注的是较暗的部分;gamma<1,输出图像关注的是较亮的部分。

    在实际操作过程中其实确定我们想要变换的灰度区间是一个相对来说很难精准确定的事,因此我们可以引入stretchlim函数,这个函数可以帮助我们自动确定要变换的参数区间而不需要我们操作,方便了imadjust函数的使用

    二、代码展示

    I1=imread('breast.tif');
    I2=imadjust(I1,[0,1],[1,0],1);%求负片
    I3=imadjust(I1,[0.5,0.75],[0,1],1);%将[0.5_0.75]映射至[0,1]
    I4=imadjust(I1,[],[],2);%进行r=2的幂律变换
    I5=imadjust(I1,stretchlim(I1),[],1);%自动确定变换区间
    I6=imadjust(I1,stretchlim(I1),[1,0],1);%自动确定变换区间并求负片
    subplot(231),imshow(I1),title('原图');
    subplot(232),imshow(I2),title('图像反转');
    subplot(233),imshow(I3),title('[0.5-0.75]扩展');
    subplot(234),imshow(I4),title('幂律变换r=2');
    subplot(235),imshow(I5),title('自动确定变换灰度值');
    subplot(236),imshow(I6),title('自动确定变换灰度值并求负片');

    三、结果展示


    总结

    可以看到imadjust函数在灰度扩展等方面具有强大的处理功能,而利用stretchlim函数处理输入区间之后输出的图像比我们自己确定区间对比效果要更好一些。

    展开全文
  • 目录幂律(伽马)变换 幂律(伽马)变换 s=crγ(3.5)s = c r^{\gamma} \tag{3.5}s=crγ(3.5) c和γc和\gammac和γ是正常数。考虑到偏移(即输入为0时的一个可度量输出),可改写为s=c(r+ϵ)γs = c (r + \epsilon) ^...
  • 在opencv中为什么调用pow函数是,其中pow(input src,double power,output dst).power为什么只可以是整数,换成小数就错误,求解
  • 分段线性变换 # -*- coding: utf-8 -*- """ Created on Wed Oct 14 20:02:40 2020 @author: chenpeng """ import cv2 import math import numpy as np def XX(pixel): if pixel<=30: ant=30 elif pixel<=...
  • 为了减少计算时间,文章提出了一种通过调整邻近像素指数值来计算局部均值的快速变换—即局部变换。 通过与多种全局和局部增强算法进行实验比较,可以看出,在多种条件下,本套方法都可以获得一个适度增强和色彩...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 156
精华内容 62
关键字:

幂律变换