精华内容
下载资源
问答
  • 灰度变换与空间滤波 空间域: 指图像平面本身,这类图像处理方法直接以图像中的像素操作为基础。操作分为灰度变换和空间滤波。 灰度变换: 在图像的单个像素上操作...基本的灰度变换函数 图像反转 灰度级范围在[0...

    灰度变换与空间滤波

    空间域: 指图像平面本身,这类图像处理方法直接以图像中的像素操作为基础。操作分为灰度变换和空间滤波。
    灰度变换: 在图像的单个像素上操作,以对比度和阈值处理为主要目的。
    空间滤波: 设计性能改善的操作,例如通过图像中每一个像素的邻域处理来锐化图像。
    灰度越大颜色越白,0是黑色,255是白色。

    截图来源于《数字图像处理》冈萨雷斯

    基本的灰度变换函数

    1032712-20190626104216927-1094489142.png

    1. 图像反转
      灰度级范围在[0, L-1]的一幅图像的反转图像:s = L - 1 - r,
      特别适用于增强嵌入在一幅图像的按区域中的白色或灰色细节,特别是黑色面积占主导地位时。
    read_image(Image, 'frequency')
    * 图像反转
    invert_image(Image, ImageInvert)
    1. 对数变换
      s = clog(1 + r) c是常数,\(r\geq 0\)
      该变换将输入中范围较窄的低灰度值映射为输出中较宽范围的灰度值,将输入中范围较大的高灰度值映射为输出较窄的灰度值。
      使用这种类型的变换来扩展图像中的暗像素的值,同时压缩更高灰度级的值。
      反对数变换相反。

    2. 幂律(伽马)变换
      \(s = cr^{\gamma}\)
      1032712-20190626141609667-2111136178.png
      从图中可以看到,\(\gamma <1\)时,将较窄范围内的较暗的输入值映射为较宽范围的输出值,暗区变小,亮区变大;
      \(\gamma > 1\)时,将较宽范围内较暗的输入值映射到了较窄范围的输出值,暗区变大,亮区变小。

    由于用于图像获取,打印和显示的各种设备根据幂律来产生相应,用于校正这些幂律相应的处理称为伽马校正。
    例如图像显示设备的响应是一个指数为2.5的幂函数,会导致显示出来的图像比实际的暗,这种情况下,在图像进入到输出设备之前,做一个指数为1/2.5的伽马变换进行纠正。
    注意:根据实际情况设置伽马值可以用于各种图像设备。

    幂律变换还可以用来进行对比度增强。对于整体比较暗的图像,选择一个小于1的伽马值,来扩展灰度级;对于整体比较亮的图像,选择一个大于1的伽马值,来压缩灰度值。

    1. 对比度拉伸
      不同灰度的数量不会发生改变,但是看上去对比度是增强了的。
      原图:
      1032712-20190626150928900-1240434971.png

    灰度拉伸之后:
    1032712-20190626150948936-1999087663.png

    1. 灰度级分层
      突出图像中特定灰度范围的亮度,用于增强特征。
      两种方法:1. 将感兴趣的区域和不感兴趣的区域分别显示为两种灰度,如一个显示为黑色,一个显示为白色,生成了一张二值图像;(阈值分割已经用过很多次了)
      2. 将感兴趣的区域变亮或变暗,其他区域不变。

    2. 比特分割
      8比特图像考虑为8幅1比特图像构成,其实就是8次阈值分割。
      主要用于图像复原,存储4个高阶比特平面将允许我们以可接受的细节来重建原图像。

    3. 直方图处理
      若一幅图像的像素倾向于占据整个可能的灰度级并且均匀分布,则该图像会有较高的对比对的外观并展示灰色调的较大变化,最终效果将是一幅灰度细节丰富且动态范围较大的图像。
      归一化的直方图
      直方图均衡
      这一节实在是太理论了。。。理论部分全部跳过。
      试了一下小结里面第7个算子,这个算子能够增强对比度,应该就是用来做直方图均衡的。
      这节中剩下部分全部跳过。

    空间滤波基础

    相关和卷积
    相关是滤波器位移的函数;
    滤波器w与包含有全部的0和单个的1的函数相关,得到的结果是一个w的拷贝,但旋转了\(180^{\circ}\)
    离散冲激: 包含单个1而其余都是0的函数。一个函数与离散单位冲激,在该冲激位置产生这个函数的一个翻转版本。
    f w
    00010000 12328
    f是一个一维函数,w是滤波器,执行相关操作,需要将w的每一位从f上走过去,得出f和w的乘积和,当w的最后一位访问f的第一位时,w的前几位会没有f来覆盖,这时候就给f补0。
    相关操作的结果是000823210000,一般喜欢使用与f大小相同的阵列,将结果裁剪一下,得到08232100。

    卷积
    机理与相关类似,只要将滤波器旋转\(180^{\circ}\)
    卷积的基本特性是某个函数与某个单位冲激卷积,得到一个在该冲激处的这个函数的拷贝。

    相关还可以用于寻找图像中的匹配。

    本节中Halcon算子小结:

    1. invert_image(Image, ImageInvert):图像反转
    2. log_image(Image, LogImage, base):对图像做底数为base的对数变换
    3. pow_image(Image, PowImage, Exponent):对图像做伽马为Exponent的幂律变换
    4. scale_image_max(Image, ImageScaleMax):将图像的灰度值拉伸到0-255
    5. scale_image(Image, ImageScaled, Mult, Add):对图像做线性变换:\(g^{'} = g * Mult + Add\)
    6. overpaint_region(Image, Region, GrayVal, Type):将图像中的指定区域或边界设置成指定的灰度值
    7. equ_histo_image(Image, ImageEquHisto):将图像的直方图线性化

    转载于:https://www.cnblogs.com/yutou2016/p/11091414.html

    展开全文
  • Visual C++数字图像处理(第二版)PDF

    热门讨论 2009-09-15 10:15:50
    图像的增强 262 6.1 图像的灰度修正 263 6.2 图像的平滑 263 6.2.1 模板操作 263 6.2.2 图像平滑理论基础 268 6.2.3 Visual C++编程实现 268 6.3 中值滤波 281 6.3.1 理论基础 281 6.3.2 Visual C++...
  • 二维绘图函数有很多,基本上分为线性图、条形图、填充图、矢量图、放射图、散射图六大类 plot函数基本平面图形函数 plot函数的格式基本上是这样子的: plot(x,y,…各种附加条件…) 列举几个例子 1.绘制sin(x)...

    Matlab数据可视化编程总结

    Matlab上的可视化编程基本上分为三部分–绘制二维图形、绘制三维图形、GUIDE工具

    绘制二维图形

    二维绘图函数有很多,基本上分为线性图、条形图、填充图、矢量图、放射图、散射图六大类

    plot函数–基本平面图形函数
    plot函数的格式基本上是这样子的:
    plot(x,y,…各种附加条件…)
    列举几个例子
    1.绘制sin(x)函数图像,区间为0-2π
    x=0:pi/200:2*pi;
    y=sin(x);
    plot(x,y)
    在这里插入图片描述

    在区间0-2π内,绘制曲线Y=2e-0.5xcos(4πx)
    octave:3> x=0:pi/200:2pi;
    octave:4> y=2
    exp(-0.5x).cos(4pix);
    octave:5> plot(x,y)
    在这里插入图片描述
    在一个图像中随机两个随机曲线
    octave:8> plot(rand(12,1))
    octave:9> hold on
    octave:10> plot(rand(12,1))
    在这里插入图片描述
    图形上的设置
    1.线形和颜色
    用不用的线形和颜色绘制cos 和sin函数
    %g代表绿色o代表圆圈,b代表蓝色,-.代表点画线
    x=0:pi/200:2pi;
    a=sin(x);
    b=cos(x);
    plot(x,a,‘go’,x,b,‘b-.’)在这里插入图片描述
    在-π,π上用任意颜色、样式绘制y=tan (sin(x)- sin (tan(x))
    x=-pi:0.01:pi;
    y=tan(sin(x))-sin(tan(x)) ;
    plot(x,y,'b
    ’)
    在这里插入图片描述
    2.图形标记
    title标题命名
    xlabel 横轴命名
    ylabel 纵轴命名

    带正弦函数进行标记
    x=0:pi/200:2*pi;
    y=sin(x);
    plot(x,y,‘go’)
    title(‘sin’);
    xlabel(‘x’);
    ylabel(‘y’);
    在这里插入图片描述
    3.特殊图形
    area函数
    这个用面积来表示向量或者矩阵,用矩阵或者向量形成的曲线与X轴围城的面积

    使用area函数绘制面域图,反映各因素最终结果贡献的份额
    %建立M文件后输入
    x=-2:2
    x =

    -2 -1 0 1 2

    y=[3,5,2,4,1;3,4,5,2,1;5,4,3,2,5]
    y =

    3 5 2 4 1
    3 4 5 2 1
    5 4 3 2 5
    sum=cumsum(y)
    sum =

    3    5    2    4    1
    6    9    7    6    2
    

    11 13 10 8 7
    area(x’,y’,0)
    legend(‘A’,‘B’,‘C’)
    ans = -12.365
    在这里插入图片描述
    2.条图
    x=-2:2;
    y=[3,5,2,4,1;3,4,5,2,1;5,4,3,2,5];
    subplot(1,2,1),bar(x’,y’,‘stacked’)
    xlabel(‘x’),ylabel(‘y’),colormap(cool)
    legend(‘因素A’,‘因素B’,‘因素C’)
    subplot(1,2,2),barh(x’,y’,‘grouped’)
    在这里插入图片描述

    x=-2:2;
    y=[3,5,2,4,1;3,4,5,2,1;5,4,3,2,5];
    subplot(1,2,1),bar3(x’,y’,1)
    xlabel(‘x’),ylabel(‘y’),zlabel(‘z’)
    colormap(summer)
    subplot(1,2,2),bar3h(x’,y’,‘grouped’)
    ylabel('y’),zlabel(‘x’)
    %这是三维的直方图,分别用bar3,bar3h表示垂直和水平横条,但是我这次用的是octave,似乎还没有开拓这个功能,所以跑不出来–The ‘bar3’ function is not yet implemented in Octave.

    3.饼图
    x = [1 3 0.5 2.5 2];
    explode=[0 1 0 0 0]
    pie(x,explode)
    在这里插入图片描述

    绘制三维图形

    1.plot3函数–绘制三维曲线

    t=0:pi/50:10pi;
    plot3(sin(t),cos(t),t)
    在这里插入图片描述
    再来一个
    t=0:pi/100:2
    pi;
    x=sin(t);
    y=cos(t);
    z=t.*sin(t).*cos(t);
    plot3(x,y,z)
    xlabel(‘x’);
    ylabel(‘y’);
    zlabel(‘z’);
    在这里插入图片描述

    2.mesh函数–绘制三维网络图
    mesh 和plot3不同,他可以绘制出在某一区间内的完整曲面

    举个例子,在区间0-x-2pi,0-y-2pi,绘制出三维曲线y=sin (y)cos(x)
    x=[0:0.15:2
    pi];
    y=[0:0.15:2*pi];
    z=sin(y’)*cos(x);
    mesh(x,y,z);
    在这里插入图片描述

    [x,y]=meshgrid(-3:1:3);
    z=peaks(x,y);
    meshc(x,y,z);
    axis([-3 3 -3 3 -10 5])

    在这里插入图片描述
    3. 曲面等高线
    [c,h]=contour(peaks(20),10);
    colormap autumn
    在这里插入图片描述

    z=peaks;
    [c,h]=contour(interp2(z,4));
    text_handle=cabel(c,h);
    set(text_handle,‘BackgroundColor’,[1 1 .6],…‘Edgecolor’,[.7 .7 .7])
    在这里插入图片描述
    4.contour3 函数–三维等高线

    [x,y]=meshgrid([-4:.2:4]);
    z=x.*exp(-x.^2-y .^2);
    contour3(x,y,z,30)
    在这里插入图片描述
    [x,y]=meshgrid([-2:.25:2]);
    z=x.*exp(-x.^2-y .^2);
    contour3(x,y,z,30)
    surface(x,y,z,‘EdgeColor’,[.8 .8 .8].‘FaceColor’,‘none’)

    在这里插入图片描述
    5.sphere函数–绘制球体

    figure
    [x,y,z]=sphere;
    surf(x,y,z)
    hold on
    surf(x+3,y-2,z)
    在这里插入图片描述
    surf函数–着色的三维曲面

    [x,y,z]=peaks(30);
    surfc(x,y,z)
    colormap hsv
    在这里插入图片描述

    GUIDE工具

    由于这次我是用线上的octave完成的,所以GUIDE这部分后期找机会我再来补充了

    参考文献
    MATLAB科学计算与数据统计应用–赵彬等著
    MATLAB入门到实践--谢龙汉、蔡思琪著

    展开全文
  • VB集成开发环境简介,面向对象程序设计方法简介,VB语法基础(基础语法、程序结构、数组、子程序和函数等),各种常用控件的使用,以及在图形、文件操作和数据库应用等方面的基本应用方法,掌握程序调试方法,为今后...
  • 5.1 文件的基本操作 实例135 创建和删除文件夹 实例136 把文件删除到回收站中 实例137 清空回收站 5.2 查找文件 实例138 搜索文件 实例139 检查文件是否存在 实例140 提取指定文件夹目录到INI文件 5.3 与...
  • C#源码集合 01(共3卷)

    千次下载 热门讨论 2008-07-18 10:43:46
    │ ├─实例112 如何以任意比例转换图像大小 │ │ ├─实例88 如何实现大图像浏览 │ │ ├─实例89 如何实现多图像浏览 │ │ ├─实例90 如何以反色方式显示图像 │ │ ├─实例91 如何以浮雕方式...
  • │ │ ├─实例88 如何实现大图像浏览 │ │ ├─实例89 如何实现多图像浏览 │ │ ├─实例90 如何以反色方式显示图像 │ │ ├─实例91 如何以浮雕方式显示图像 │ │ ├─实例92 如何以黑白方式显示图像 │ │ ├...
  • C#源码集合 03(共3卷)

    热门讨论 2008-07-18 10:54:39
    │ ├─实例112 如何以任意比例转换图像大小 │ │ ├─实例88 如何实现大图像浏览 │ │ ├─实例89 如何实现多图像浏览 │ │ ├─实例90 如何以反色方式显示图像 │ │ ├─实例91 如何以浮雕方式...
  • 220 理解不区分小写的函数 第二十二章 操作字符串 221 理解sizeof操作符 222 使用sizeof操作来判断字符串的有效长度 223 使用sizeof判断数组中字符串的数量 224 访问字符串中的单个字符 225 动态分配字符串 226 ...
  • 220 理解不区分小写的函数 第二十二章 操作字符串 221 理解sizeof操作符 222 使用sizeof操作来判断字符串的有效长度 223 使用sizeof判断数组中字符串的数量 224 访问字符串中的单个字符 225 动态分配字符串 226 ...
  • 220 理解不区分小写的函数 第二十二章 操作字符串 221 理解sizeof操作符 222 使用sizeof操作来判断字符串的有效长度 223 使用sizeof判断数组中字符串的数量 224 访问字符串中的单个字符 225 动态分配字符串 226 ...
  • 220 理解不区分小写的函数 第二十二章 操作字符串 221 理解sizeof操作符 222 使用sizeof操作来判断字符串的有效长度 223 使用sizeof判断数组中字符串的数量 224 访问字符串中的单个字符 225 动态分配字符串 226 ...
  • delphi部件开发

    2008-12-31 12:21:02
    2.7.4 TWinControl事件及其功能描 第三章 Delphi部件开发基本方法 3.1 Delphi部件开发编程概述 3.1.1 部件的定义及特征 3.1.2 创建部件的途径 3.1.3 测试求安装的部件 3.2 创建属性、方法和事件 3.2.1 创建...
  • Perl5语言全教程

    2013-11-13 10:41:45
    1、基本I/O函数 1)open函数 2)用open重定向输入 3)文件重定向 4)指定读写权限 5)close函数 6)print, printf和write函数 7)select函数 8)eof函数 9)间接文件变量 2、跳过和重读数据 3、系统读写函数 4...
  • Visual C++ 6.0编程实例与技巧.pdf

    热门讨论 2011-06-29 15:58:10
    3.12.2 派生的对象和构造函数 3.12.3 多复派生 3.12.4 的多继承 3.12.5 多层派生 3.13 重载 3.13.1 函数重载 3.13.2 操作符重载 3.14 多态性 3.14.1 虚拟函数 3.14.2 纯虚拟函数 3.15 c++语言的...
  • Perl5语言全教程.rar

    2010-10-14 10:51:45
    1、基本I/O函数 1)open函数 2)用open重定向输入 3)文件重定向 4)指定读写权限 5)close函数 6)print, printf和write函数 7)select函数 8)eof函数 9)间接文件变量 2、跳过和重读数据 3、系统读写函数 4...
  • perl 程序开发教程

    2009-09-29 10:29:59
    1、基本I/O函数 1)open函数 2)用open重定向输入 3)文件重定向 4)指定读写权限 5)close函数 6)print, printf和write函数 7)select函数 8)eof函数 9)间接文件变量 2、跳过和重读数据 3、系统读写函数 4...
  • 17.9.1 自由度关节的基本知识 502 17.9.2 案例的运行效果 503 17.9.3 人偶——doll 503 17.9.4 拾取时采用的点对点关节 505 17.10 本章小结 509 第18章 传感器应用的开发 510 18.1 基本的...
  • 第二、三章系统叙述MATLAB 6.5的四大基本数据类型(数值数组、字符串数组、元胞数组、构架数组),至于其他扩展数据类型(函数句柄、符号数据、内联函数、unit数组、稀疏)则另辟章节专述。此后,本书用九个独立章...
  • 5.3.3 理解字母小写和函数名称 5.4 理解为什么要定义自己的函数 5.5 了解基本函数结构 5.5.1 函数命名 5.6 使用参数 5.7 理解作用域 5.8 参数的引用传递和值传递 5.9 使用Return关键字 5.9.1 从函数返回...
  • PHP和MySQL Web开发第4版

    热门讨论 2014-08-13 15:32:15
    5.3.3 理解字母小写和函数名称 5.4 理解为什么要定义自己的函数 5.5 了解基本函数结构 5.5.1 函数命名 5.6 使用参数 5.7 理解作用域 5.8 参数的引用传递和值传递 5.9 使用Return关键字 5.9.1 从函数返回...
  • 5.3.3 理解字母小写和函数名称 5.4 理解为什么要定义自己的函数 5.5 了解基本函数结构 5.5.1 函数命名 5.6 使用参数 5.7 理解作用域 5.8 参数的引用传递和值传递 5.9 使用Return关键字 5.9.1 从函数返回一个值 ...

空空如也

空空如也

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

六大类基本函数图像