精华内容
下载资源
问答
  • 对数变换 matlab

    2015-05-11 15:13:56
    对数变换matlab图像处理技术中增强图像的一种预处理方法 ,当希望对图像的低亮度区有较大的扩展而对高亮度区压缩时,可采用此种变换。
  • matlab 简单的图像对数变换
  • Matlab 图像增强(对数变换

    万次阅读 多人点赞 2019-03-21 11:30:46
    图像的对数变换: 通过灰度变换函数,调整输入低质图像的灰度值范围。将图像的低灰度值部分扩展,高灰度值部分压缩。借此强调图像低灰度部分,达到增强图像的目的。 该法用于图像增强的原理: 显示器无法显示...

    图像的对数变换:

    通过灰度变换函数,调整输入低质图像的灰度值范围。将图像的低灰度值部分扩展,高灰度值部分压缩。借此强调图像低灰度部分,达到增强图像的目的。

    该法用于图像增强的原理:

    显示器无法显示大范围灰度值时,许多灰度细节会被丢失掉,

    对数变换可将其动态范围变换到一个合适的区间,就可以显示更多细节。

    下面先介绍冈萨雷斯《数字图像处理》中设计的方法,我认为对图像的灰度提高的过于明显。

    对数变换公式:S=c log(1+r) , c为常数。

    f = imread('lena.png');  
    
    G=mat2gray(log(1+double(f))); 
    % matlab中数值一般采用double型(64位)存储和运算。mat2gray对图像灰度进行归一化处理
    
    subplot(1,2,1);  
    imshow(f);  
    xlabel(' a). 原始图像');  
    subplot(1,2,2);  
    imshow(I2,[]);   % 自动调整数据的范围以便于显示 
    xlabel(' b). 对数变换');  
    end
    

    运行结果:

    下面介绍另一种方法,参考:[数字图像处理]灰度变换

    对数变换公式:, c为常数,

    v越大,灰度提高越明显,r为灰度归一化后的输入图像。

    f = imread('lena.png');  
    
    v=10;
    r=mat2gray(double(I));
    S=log(1+v*r)/(log(v+1));
    
    subplot(1,2,1);  
    imshow(I);  
    xlabel('a). 原始图像');  
    subplot(1,2,2);  
    imshow(S,[]);  
    xlabel('b). 对数变换');  
    end
    

    运行结果:

    这个感觉比较自然一点。

     

    展开全文
  • 对数变换(Power-Law 变换)的公式为: 由一个参数决定,c,1+r的目的是保证像素值为非负数 它的作用是:扩展图像中的暗像素,可以增加低亮度的区域 MATLAB函数代码如下: function img_after = log_img(img_...

    对数变换
    对数变换(Power-Law 变换)的公式为:
    对数变换公式
    由一个参数决定,c,1+r的目的是保证像素值为非负数
    它的作用是:扩展图像中的暗像素,可以增加低亮度的区域
    示例
    MATLAB函数代码如下:

    function img_after = log_img(img_before, K)
    img_double = im2double(img_before);
    img_after = K* log(1 + img_double);
    end
    

    其中的k为放大系数,img_before为要变换的图像,img_after为变换后的图像
    完整的代码如下:

    img = imread('路径');
    subplot(1,2,1)
    imshow(img)
    title('原图像')
    
    k = 1.6;
    img_P = log_img(img, k);
    subplot(1,2,2)
    imshow(img_P)
    da = ['k=' num2str(k) '变换后的图像'];
    title(da)
    
    
    function img_after = log_img(img_before, K)
    img_double = im2double(img_before);
    img_after = K* log(1 + img_double);
    end
    

    幂次变换
    幂次变换(Log变换)公式如下:
    在这里插入图片描述
    幂次曲线中的 值决定了是把输入窄带暗值映射到宽带输出值还是把输入窄带亮值映射到宽带输出。
    γ<1时,γ↓ ⇒ 该变换将低灰度值(暗值)进行拉伸
    γ>1时,γ↑ ⇒ 该变换将高灰度值(亮值)进行拉伸

    示例
    为什么要进行γ校正?
    几乎所有的CRT显示设备、摄像胶片、许多电子照相机的光电转换特性都是非线性的。所以,如果不进行校正处理的话,将无法得到好的图像效果。
    光电传感器的输入输出特性:这些非线性部件的输出与输入之间的关系可以用一个幂函数来表示,形式为:设CCD的输入(入射光强度)为r,输出(电压)为v,则有:在这里插入图片描述
    对于伽马值的选取,要根据实际情况而定
    c取1,伽马取不同值(小于1)图像如下:
    在这里插入图片描述
    c取1,伽马取不同值(大于1)图像如下:
    在这里插入图片描述

    同时对上方的月球图片进行处理得到:
    在这里插入图片描述
    MATLAB函数代码为:

    function img_after = Power_law(img_before, K, c)
    
    img_double = im2double(img_before);
    img_after = K* img_double.^c;
    
    end
    

    完整代码为:

    %图片读取
    img = imread('路径');
    subplot(1,2,1)
    imshow(img)
    title('原图像')
    
    %参数设置
    k = 1.2;
    c = 0.75;
    img_P = Power_law(img, k, c);
    subplot(1,2,2)
    imshow(img_P)
    da = ['变换公式' num2str(k) '*x .\^' num2str(c) '变换后的图像'];
    title(da)
    
    
    function img_after = Power_law(img_before, K, c)
    
    img_double = im2double(img_before);
    img_after = K* img_double.^c;
    
    end
    

    如果感觉文章有用的话,点个赞O(∩_∩)O哈哈~

    如果你要交作业的话,还请认真阅读,懂了之后自己写一写,那样才是自己的。

    ps:部分图片来自于湖南大学图像处理课程PPT(侵删)

    展开全文
  • 冈萨雷斯数字图像处理(第三版) matlab代码 图3.5 傅里叶频谱及对数变换
  • 我们用两个生动的例子阐释傅里叶变换的作用:【例子一】:现在一家餐厅研究了一个特殊的美食,作为美食家的你,想知道这个菜里面到底都有什么配料。那么,如果我们输入这个美食(这个美食就是我们的“时域信号”),...
    6e5081e4a0fddd6b9ce057945360768f.png点击上方蓝字  关注我们b61f9f6f2dd236e7db5f6cdc54e2837e.pngcf6ca29984d5c05a108a7f10b81bed80.pnge0b63fe550d78ae5dba43762922eb286.gif一、傅里叶变换

    1.首先,傅里叶变换有什么用呢?我们用两个生动的例子阐释傅里叶变换的作用:

    【例子一】:现在一家餐厅研究了一个特殊的美食,作为美食家的你,想知道这个菜里面到底都有什么配料。

    那么,如果我们输入这个美食(这个美食就是我们的“时域信号”),通过傅里叶变换,就可以得到这份美食的配方(这个配方就是我们的“频域信号”)

    如果我们输入的是这个美食的配方,就可以通过傅里叶反变换得到这份美食

    【例子二】:下面请读者和我一起做一件事情:我将给出sin(3x)+sin(5x)sin(3x)+sin(5x)的曲线(你只知道这个曲线的样子,并不知道这个曲线的方程),那么应该如何去掉sin(5x)sin(5x)的成分呢?

    想在时域中完成这个简直难于上青天,可以在频域中却很简单。

    2.傅里叶变换的应用

    傅立叶变换在图像处理中有非常非常的作用。因为不仅傅立叶分析涉及图像处理的很多方面,傅立叶的改进算法,比如离散余弦变换,gabor与小波在图像处理中也有重要的分量。

    印象中,傅立叶变换在图像处理以下几个话题都有重要作用:

    a.图像增强与图像去噪

    绝大部分噪音都是图像的高频分量,通过低通滤波器来滤除高频——噪声;  边缘也是图像的高频分量,可以通过添加高频分量来增强原始图像的边缘;

    b.图像分割之边缘检测

    提取图像高频分量

    c.图像特征提取:

    形状特征:傅里叶描述子

    纹理特征:直接通过傅里叶系数来计算纹理特征

    其他特征:将提取的特征值进行傅里叶变换来使特征具有平移、伸缩、旋转不变性

    d.图像压缩

    可以直接通过傅里叶系数来压缩数据;常用的离散余弦变换是傅立叶变换的实变换;

    3.我们再接着看看傅里叶变换本身是什么:

    傅里叶变换是将时域信号分解为不同频率的正弦信号或余弦函数叠加之和。他的公式如下:

    公式1:二维傅里叶变换公式(其实不用看它)

    f63002923785708657c25cb6081d3cad.png

    (公式1)

    公式中参数说明:

    M、N分别是图像的长和宽;

    u、x范围从1到M-1;v、y范围从1到N-1。

    公式看上去不难,但其实还是不太明确到底怎么用啊!它其实可以矩阵相乘的形式表示:

    b56eb81f839081f9542c5a8bca386e79.png

    (公式2)

    公式2中f是原始二维数据矩阵,G_{1}和G_{2}分别是如下

    868dba5fc5a71ca884c6085ca81be53e.png

    (公式3)

    bcd34d827111a3a321176756ba86c071.png

    (公式4)

    大家观察一下,G_{1}和G_{2}这么有规律,很容易就编程出来了~ 然后3个矩阵做个乘积,就换到频率域了!二维傅里叶变换就很容易用matlab实现了。

    910c3229f0257536645ed2611debe9ef.png二、MATLAB程序的实现

    1.主要函数介绍

    主要用到的函数是fft2,其基本语法为:

    Y = fft2(X)        

    它的含义是使用快速傅里叶变换算法返回矩阵的二维傅里叶变换, 这等同于计算fft(fft(X).').'。如果X是一个多维数组, fft2将采用高于 2 的每个维度的二维变换。输出Y的大小与X相同

    Y = fft2(X,m,n)

    将截断X或用尾随零填充X,以便在计算变换之前形成m×n矩阵。Ym×n矩阵。如果X是一个多维数组,fft2将根据mn决定X的前两个维度的形状,也就是说使用该语法fft2将使用所要求的0的个数对输入图像进行填充,以便结果函数的大小为m*n。

    傅里叶频谱可以使用函数abs来获得:

    S = abs(F)

    该函数计算数组的每一个元素的幅度(实部和虚部平方和的平方根)。

    2.程序实践

    Step1:导入图像并显示

    N=100 f=zeros(50,50); f(15:35,23:28)=1; subplot(2,3,1); imshow(f); title('原始图像')

    Step2:计算傅里叶变换并显示其频谱

    g= fft2(f);   % matlab自带函数,来用对比 subplot(2,3,2); imshow(real(g));  % 一般只要实部 title('fft2生成的"频域"图像'); S=abs(g); subplot(2,3,3); imshow(S) title('傅里叶频谱')

    Step3:居中频谱

    Fc=fftshift(real(G));      %将零频分量移到频谱中心 subplot(2,3,4); imshow(Fc) title('居中的频谱')

    Step4:使用对数变换进行视觉上的增强

    S2=log(1+abs(Fc)); subplot(2,3,5); imshow(S2) title('使用对数变换进行视觉增强后的频谱');

    bb4e0d43edb5c5a9fcefc081b0ee9323.png

    好了,今天的学习内容到此,关注我们了解更多。

    关于MATLAB的学习:

    大家可以关注我们的知乎专栏——数据可视化和数据分析中matlab的使用:

    https://zhuanlan.zhihu.com/c_1131568134137692160

    欢迎大家加入我们的MATLAB学习交流群:

    953314432

    往期精彩回顾MATLAB中图像的镜像变换MATLAB数值微分与数值积分MATLAB多项式计算75067fc920991fab368a3813d34a0e2d.png7aea18ef7b358650058c7a5047038f03.png8bca528595b2fa3c20c1e5e78ea813f8.gif扫码关注我们更多精彩等待你发现出品:Asoul水云天课堂工作室8bca528595b2fa3c20c1e5e78ea813f8.gif9a6a911b57a9c3f5f8f1cef15b898e33.png好看你就点点
    展开全文
  • 对数变换:增强较暗的部分,用于扩展压缩的频谱图像,例如傅里叶频谱。 >> I=imread('D:\project1.jpg'); I=im2double(I); >> F=fft2(I); >> F=fftshift(F); >> F=abs(F); >> T=log(F+1); >> imshow(F,[]); >> ...
    • 绘制灰度直方图

    原图:

    一般直方图:

    改变区间数:

    归一化处理:

    • 对直方图进行线性变换:
    %线性变换
    I=imread('D:\project1.jpg');
    I=im2double(I);
    [M,N]=size(I);
    figure(1);
    imshow(I);
    title('source');
    figure(2);
    [H,x]=imhist(I,32);
    stem(x,(H/M/N),'.');
    title('source1');
    %增加对比度
    A=2;B=-55;
    O=A.*I+B/255;
    figure(3);
    subplot(2,2,1);
    imshow(O);
    figure(4);
    subplot(2,2,1);
    [H,x]=imhist(O,32);
    stem(x,(H/M/N),'.');
    %减小对比度
    A=0.5;B=-55;
    O=A.*I+B/255;
    figure(3);
    subplot(2,2,2);
    imshow(O);
    figure(4);
    subplot(2,2,2);
    [H,x]=imhist(O,32);
    stem(x,(H/M/N),'.');
    %增加亮度
    A=1;B=55;
    O=A.*I+B/255;
    figure(3);
    subplot(2,2,3);
    imshow(O);
    figure(4);
    subplot(2,2,3);
    [H,x]=imhist(O,32);
    stem(x,(H/M/N),'.');
    %反相显示
    A=-1;B=255;
    O=A.*I+B/255;
    figure(3);
    subplot(2,2,4);
    imshow(O);
    figure(4);
    subplot(2,2,4);
    [H,x]=imhist(O,32);
    stem(x,(H/M/N),'.');
    

    处理后的结果:

    • 对数变换:增强较暗的部分,用于扩展压缩的频谱图像,例如傅里叶频谱。
    >> I=imread('D:\project1.jpg');
    I=im2double(I);
    >> F=fft2(I);
    >> F=fftshift(F);
    >> F=abs(F);
    >> T=log(F+1);
    >> imshow(F,[]);
    >> imshow(T,[]);
    • 指数变换:选择性地增强高低灰度区域的对比度。(改变对比度+增加细节)

     

     

     

     

    展开全文
  • 对数变换可以拉伸范围较窄的低灰度值,同时压缩范围较宽的高灰度值。可以用来扩展图像中的暗像素值,同时压缩亮像素值。简而言之是对图像中低灰度细节进行增强其中 为常数, , 可以使函数左移一个单位,得到的s均...
  • matlab亮度变换源代码

    2019-04-24 23:49:35
    matlab亮度变换源代码,亮度变换主要有线性与非线性变化和直方图处理,线性变化有分段线性和直接线性之分,非线性有对数变换,幂律变换等等,直方图处理有直方图均衡和直方图归一化。
  • 本文参考了 以下这篇文章[数字图像处理]灰度变换——反转,对数变换,伽马变换,灰度拉伸,灰度切割,...以上为上述文章 的原话,这里展示出对数变换的code 和 figure,Matlab Code:f = 0:0.01:1; v1 = 1; y1 = lo...
  • 对数极坐标变换matlab程序

    热门讨论 2009-05-20 15:53:29
    在图像拼接过程中对于旋转的图像需要进行对数极坐标变换,该程序可以实现这种功能。
  • [数字图像处理]灰度变换——反转,对数变换,伽马变换,灰度拉伸,灰度切割,位图切割 【From】http://blog.csdn.net/zhoufan900428/article/details/12709361 数字图像处理灰度变换灰度拉伸MATLAB...
  • 采用对数变换法增强灰度图像对比度,已用Matlab编译出结果。但是要求在CCS中用C语言完成任务,如今读取图像部分和直方图均衡化部分已经完成,如何才能把对数增强的Matlab语言转换成C语言呢?
  • 2.6 设置线宽、标记大小和标记颜色 2.5 设置线型、颜色和... imshow(g,[]) 数字图像处理的MATLAB实现(第2版)—【美】Rafael C.Gonzalez Richard E.Woods Steven L.Eddins著----阮秋琦 译—【M】北京:清华大学出版社
  • 灰度变换 灰度 灰度可以认为是亮度,灰色图片中黑白的深浅程度,范围一般为0~255。图像数字化为二维矩阵后,每个点的值都代表一个像素点的灰度值。 灰度级 灰度值的表示范围,灰度级时,称图片为k比特图片。...
  • 对数极坐标变换MATLAB代码

    千次阅读 2012-01-10 17:52:38
    http://www.vision.ee.ethz.ch/~konrads/code/logpolar.m function [I_lp,I_nearest,I_bilinear] = logpolar(I,slices) % % [I_lp,I_nearest,I_bilinear] = logpolar(I,slices) % % Log-polar resampli...
  • MATLAB非线性灰度变换,只要是对数变换,以增强图像的显示效果
  • 如有帮助欢迎支持 图形图像处理课程 大作业 姓名 班级 学号 1 如有帮助欢迎支持 目录 界面编程实现图像灰度变换1 摘 要2 正 文3 1.MATLAB界面编程简介3 2.图像的灰度变换简介3 3.采用MATLAB Guide设计界面4 3.1 问题...
  • matlab开发-采样率变换

    2019-08-28 02:11:12
    matlab开发-采样率变换。程序对数组中给定的一维数据进行插值或抽取。
  • Matlab幂律变换及直方图均衡化

    千次阅读 2020-09-27 12:46:35
    一、目标: 1、实现幂律变换,可以尝试调整gamma数值,观察图像变换。分析Lena图像(灰度)在不同gamma数值下,图像灰度变换的特点。...与对数变换相同,幂次变换将部分灰度区域映射到更宽的区域中。当...
  • 图形图像处理课程 大作业 姓名: 班级: 学号: 界面编程实现图像灰度变换 摘要 正文 1.MATLAB界面编程简介: 2. 图像的灰度变换简介 3. 采用 MATLAB Guide 设计界面 3.1 问题... 对数变换的算法设计与实现 5.1 问题分析:
  • 图形图像处理课程 大作业 姓名: 班级 : 学号: 目录 界面编程实现图像灰度变换 摘要 正文 1.MATLAB 界面编程简介 : 2. 图像的灰度变换简介 3. 采用 MATLAB Guide 设计界面 3.1 问题分析: 3.2 ... 对数变换的算法设计与实
  • 【图像处理】MATLAB:亮度变换

    万次阅读 2017-10-06 11:59:45
    亮度变换对数和对比度拉伸变换、实用M函数
  • Word可编辑 图形图像处理课程 大作业 姓名: 班级: 学号: 目录 界面编程实现图像灰度变换 摘要 正文 1.MATLAB 界面编程简介: 2. 图像的灰度变换简介 3. 采用 MATLAB Guide 设计界面 3.1 问题... 对数变换的算法设计与实
  • 数字图像处理——Matlab GUI与灰度变换函数简介Matlab具有强大的函数运算功能,利用这一点可以进行像素级的计算,也就是图像处理。...对数变换​ 使用方法不允许修改空图片,必须打开一张图片后才能获得修改图片
  • 图像傅里叶变换——MATLAB

    千次阅读 2017-06-21 13:25:53
    clc; clear all; close all; img=imread(‘sophie.tif’); fimg=fft2(img);%做付fft变换-abs(Y)可得到幅度谱,angle(Y)可得到相位谱。...ffimg=fftshift(fimg);...%对幅值做对数变换,压缩动态范围 figure; subplo
  • Matlab图像处理之灰度变换函数

    万次阅读 2016-04-20 19:08:51
    1,灰度:对于通常所谓的黑白图像,把黑色和白色之间按对数关系分为若干等级称为灰度。灰度分为256阶,用灰度表示的图像称作灰度图.在图像中用0~255表示,0是全黑,255是全白 2.对比度:对比度值一幅图像中敏感区域...
  • 基本灰度变换函数 1 对数变换 s=c∗log(1+v⋅r) ...MATLAB 对数变换函数效果代码: f = 0:0.01:1; v1 = 1; y1 = log2(1 + v1*f)/log2(v1+1); v2 = 10; y2 = log2(1 + v2*f)/log2(v2+1); v3 = 50; y3
  • matlab数字图像的傅立叶变换实验

    万次阅读 多人点赞 2016-11-11 10:57:53
    实验三 图像的傅立叶变换 1.启动MATLAB程序,读入一幅图像;对图像做FFT。使用’subplot’命令,同时显示原始图像其频谱图; 1.1实验过程: 首先读取一幅图像,然后将这幅图像归一化到0~1之间...然后做频谱对数变换

空空如也

空空如也

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

matlab对数变换

matlab 订阅