数字图像处理(MATLAB版)学习笔记(1)——第1章节 绪言

0、下定狠心

当当下手数字图像处理一按部就班,从此开此正式跨入数字图像处理大门。以前虽然多多少少碰了这些东西,也召开了有有关的事务,但觉得还无敷系统,也不够规范,从今日开始,一步一步地修下,相信会生出成果的。

C语言 1

1、本章知识点结构

 下面的思索导图主要为此xmind制作。知识点是本着第1章节的一对民用认为比较关键之知识概括了一晃,然后加了上下一心的一点点了然。C语言 2

2、书中例子实践

 第一独例证,试一试手。

1 function f = twodsin(A, u0, v0, M, N)
2 f = zeros(M, N);
3 for c = 1:N
4     v0y = v0 * (c - 1);
5     for r = 1:M
6         u0x = u0 * (r - 1);
7         f(r, c) = A * sin(u0x + v0y);
8     end
9 end

运作速度,只要0.0154秒,但是书上的用了0.0471秒,看来我之微处理器比作者的微处理器好了无数哈,或者是赛版本的MATLAB(2014a),优化做得重好。

>> timeit(@() twodsin(1, 1/(4*pi), 1/(4*pi), 512, 512))

ans =

    0.0154

将首先单例的第2尽注释掉,运行如下,果然速度要下降了很多,所以还是预分配内存比较好。

>> timeit(@() twodsin(1, 1/(4*pi), 1/(4*pi), 512, 512))

ans =

    0.0263

 就是一个二维的sin(x,y)函数,它的增幅虽意味着亮度,如下图所显示,黑白正弦起伏,感觉挺是的,MATLAB果然很强大。

>> f=twodsin(1, 1/(4*pi), 1/(4*pi), 512, 512);
>> imshow(f,[]);

C语言 3

自然者例子的根本不在打生图像,而是要经过奔量化的法子将上述函数中的星星独for循环去丢,从而增强算法的进度。

1 function f = twodsin2(A, u0, v0, M, N)
2 r = 0:M-1;
3 c = 0:N-1;
4 [C, R] = meshgrid(c, r);
5 f = A * sin(u0 * R + v0 * C);

如出一辙的参数,只所以了0.0072,比达独0.0154,快了50%多。

>> timeit(@() twodsin2(1, 1/(4*pi), 1/(4*pi), 512, 512))

ans =

    0.0072

对meshgrid(M,N)函数,我是直拿它们掌握吧生个一个网格,这个网格的就是是MxN的面积大小,而望量M和N中的元素,就是是网格上之触发,可以就此要下图来表示,更加直观一点,如明有误,欢迎指正。

C语言 4

上述网格表示的是之类meshgrid,有了图,应该非常容易理解。

>> [X,Y]=meshgrid(1:3,10:14)

X =

     1     2     3
     1     2     3
     1     2     3
     1     2     3
     1     2     3


Y =

    10    10    10
    11    11    11
    12    12    12
    13    13    13
    14    14    14

总结一下

由此对本章的读书,对图像C语言的知情,更加深切,可以从数学的角度来拘禁同样幅图像,同时,也越加懂得以明图像的信是何许存储的。这无异于章节中,也讲子许多MATLAB的技术,很实用,也深深体会至了MATLAB处理矩阵的有力作用,这同一优势确实是C/C++/C#当语言无法比拟的。路老,吾必将上下求索。Keep
on!!

本博文纯原创,未经博主同意(我的信箱:endless@139.com),请无转载。有思交流学习的同伴,可以加以我的QQ:1449494575,欢迎各位。