基于MATLAB的数字图像处理仿真软件

2023-11-04

1 引言

1.1MATLAB介绍

MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连 接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。




1.2MATLAB图像处理工具箱函数介绍

1. imread 
imread函数用于读入各种图像文件,如:a=imread('E:\1.jpg) 
注:计算机E盘上要有1相应的.jpg文件。
2. imfinfo 
imfinfo函数用于读取图像文件的有关信息,如:imfinfo('E:\1.jpg)
3. rgb2grad
rgb2grad()函数用于把真彩图转换为灰度图
4. imshow 
imshow函数用于灰度图像文件的显示,如: 
i=imread('E:\1.jpg); 
imshow(i);
5. imnoise 
imnoise函数用于对图像生成模拟噪声,如: 
i=imread('E:\1.jpg); 
j=imnoise(i,'gaussian',0,0.02);%模拟高斯噪声
5. fspecial 
fspecial函数用于产生预定义滤波器,如: 
h=fspecial('sobel');%sobel水平边缘增强滤波器 
h=fspecial('gaussian');%高斯低通滤波器 
h=fspecial('laplacian');%拉普拉斯滤波器 
h=fspecial('log');%高斯拉普拉斯(LoG)滤波器 
h=fspecial('average');%均值滤波器
6. 中值滤波 
medfilt2函数用于图像的中值滤波,如: 
i=imread('e:\w01.tif'); 
j=medfilt2(i);


2 图像的采集

图像以数字形式进入计算机是进行数字图像处理的第一步。一幅黑白图像可以看成是一个二维函数f(x,y),其亮度是位置(x,y)的连续函数。计算机中的数字图像是以矩阵形式[f(m,n)]表示的,不同的处理就是用不同的算法对这一图像矩阵进行运算。从二维连续函数到矩阵,涉及在不同空间位置上取出函数值作为样本,并用一组整数值来表示这些样本的两个过程,前者称为取样,后者称为量化,二者统称为数字化。

根据要求,数据来源于电脑上的图片,将这幅图片保存在路径“F:\CF\1.jpg”,图片命名为1,原始的图片如图1-1所示:



图1 原彩色图像


3 图像的加噪

3.1加入乘性噪声

3.1.1噪声分析与函数使用

现实中,图像在被获取和被传输时常常会受到各种各样的噪声的干扰,按其影响可分为加性噪声和乘性噪声。MATLAB中为图片加乘性噪声的语句是

(1)J = imnoise(I, 'speckle'); (1)

(2)J = imnoise(I, 'speckle',parameters); (2)

其中I为原图象的灰度矩阵,J为加噪声后图象的灰度矩阵;一般情况下用(1)表示即可,(2)中表示是允许修改参数,而(1)中使用缺省参数。

3.1.2代码及其注释

A=imread('F:\CF\1.jpg');
%图像的读入,并将图像数据存入A
B=rgb2gray(A);
%将原彩色图像变成灰度图像,并将图像数据存入B
subplot(2,2,1);
%分割显示窗口,将其分为2X2,将图像放入第一个位置
%给图像加入乘性噪声,并存入Bspeckle
subplot(2,2,2);
%分割显示窗口,将其分为2X2,将图像放入第二个位置
imshow(Bspeckle);title('灰度图像加入乘性噪声后');
%显示加入乘性噪声的图像B,并为其加标题

3.1.3图像仿真



图2 灰度图像与加入乘性噪声后的图像

3.2加入椒盐噪声

3.2.1噪声分析与函数使用

椒盐噪声是一种比较典型的噪声,由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。椒盐噪声往往由图像切割引起。MATLAB中为图片加椒盐噪声的语句是

(1)J = imnoise(I, 'salt & pepper');                                     (3)
(2)J = imnoise(I, 'salt & pepper',parameters);                            (4)

其中I为原图象的灰度矩阵,J为加噪声后图象的灰度矩阵;一般情况下用(3)表示即可,(4)中表示是允许修改参数,而(式3-4)中使用缺省参数。

3.2.2代码及其注释

A=imread('F:\CF\1.jpg');
B=rgb2gray(A);
subplot(2,2,1);
imshow(B);title('原灰度图像');

3.2.3图像仿真



图3 灰度图像与加入椒盐噪声后的图像

3.3加入高斯噪声

3.3.1噪声分析与函数使用

高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。MATLAB中为图片加高斯噪声的语句是

(1)J = imnoise(I, 'gaussian');                                          (5)
(2)J = imnoise(I, 'gaussian',parameters);                                 (6)
(3)J=imnoise(I, 'gaussian',m,v);                                       (7)

其中I为原图象的灰度矩阵,J为加噪声后图象的灰度矩阵一般情况下用(5)表示即可,(6)中表示是允许修改参数,而(5)中使用缺省参数;(7)中对图像I加高斯噪声,均值为m,方差为v。本次课程设计选择的加噪方式为第二种。

3.3.2代码及其注释

A=imread('F:\CF\1.jpg');
B=rgb2gray(A);
subplot(2,2,1);
imshow(B);title('原灰度图像');
Bgauss=imnoise(B,'gaussian',0.16);
subplot(2,2,2);
imshow(Bgauss);title('灰度图像加入高斯噪声后');

3.3.3图像仿真



图4 灰度图像与加入高斯噪声后的图像

4图像的去噪

4.1滤波器的介绍

一种较好的图像去噪方法应该既可以消掉噪声影响又不使图像的边缘轮廓和线条变模糊。图像去噪处理方法有空域法和频域法2类。在空间域里一类方法是噪声去除,即先判定某点是否为噪声点,若是,重新赋值,若不是按原值输出;另一类方法是平均,即不依赖于噪声点的识别和去除,而对整个图像进行平均运算。在频率域里是对图像频谱进行修正,一般采用低通滤波方法,而不像在空间域里直接对图像像素灰度级值进行运算,即首先将图像从空间域变换到频率域,然后进行各种各样的处理,再将所得到的结果进行反变换,从而达到图像处理的目的。小波变换是全局变换,在时域或频域中均可从混有强噪声的信号中提取原始信号。本研究对空间域中的均值滤波、中值滤波和自适应滤波3种去噪技术进行分析比较,以下为3种技术的各自去噪原理。

4.1.1均值滤波

也称线性滤波,主要思想为邻域平均法,对图像的任一像素点以其为中心取M×M窗口(M一般取3,5,7,9等奇数) ,即用几个像素灰度的平均值来代替每个像素的灰度。有效抑制加性噪声,但容易引起图像模糊,可以对其进行改进,主要避开对景物边缘的平滑处理。该方法运算简单,对高斯噪声具有良好的去噪能力。均值滤波法可归结为矩形窗加权的有限冲击响应线性滤波器。第一个“旁瓣”比主峰大约低13分贝。因此,均值滤波器相当于低通滤波器。这种低通性能在平滑噪声的同时也会对图像的高频细节成分造成破坏和损失,使图像模糊。

4.1.2中值滤波

基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波信号处理技术。中值滤波的特点即是首先确定一个以某个像素为中心点的邻域,一般为方形邻域,也可以为圆形、十字形等等,然后将邻域中各像素的灰度值排序,取其中间值作为中心像素灰度的新值,这里领域被称为窗口,当窗口移动时,利用中值滤波可以对图像进行平滑处理。其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。很容易自适应化。中值滤波可以克服线性滤波器给图像带来的模糊,在有效清除颗粒噪声的同时,又能保持良好的边缘特性,从而获得较满意的滤波效果,特别适合于去除图像的椒盐噪声。利用中值滤波算法可以很好地对图像进行平滑处理。对于椒盐噪声密度较小时,尤其是孤立噪声点,用中值滤波的效果非常好,但在椒盐噪声密度增加时,其去噪能力将降低,可能残留下部分噪声像素。虽然可以采用多轮迭代方式对滤波后的图像再次使用中值滤波进行处理,但将造成更大的细节损失。

4.1.3维纳滤波

维纳滤波(N Wiener最早在1942年提出的方法)是一种对退化图像进行恢复处理的一种常用算法,也是最早也最为人们熟知的线性图像复原方法。其设计思想是使输入信号乘响应后的输出,与期望输出的均方误差为最小,是一种自适应滤波器,根据局部方差来调整滤波器效果。对于去除高斯噪声效果明显。其数学形式比较复杂:F(u,v)=[(1/H(u,v))*(|H(u,v)|2)/(|H(u,v)|2+s*[Sn(u,v)/Sf(u,v)])]*G(u,v) (8)

其中Sn(u ,V)表示噪声的功率谱,Sf(u ,V)表示未退化图像的功率谱。在进行实际处理时,往往不知道噪声函数Sn(u,v)和Sf(u,v)的分布情况,因此在实际应用时多用:

F(u,v)=[(1/H(u,v))×(|H(u,v)|2)/(|H(u,v)|2+K)]×G(u,v) (9)

进行近似处理,其中K是一个预先设定的常数。

维纳滤波对高斯噪声、乘性噪声都有明显的抑制作用,相对与均值滤波和中值滤波,维纳滤波对这两种噪声的抑制效果更好,缺点就是容易失去图像的边缘信息。维纳滤波对椒盐噪声几乎没有抑制作用。

4.2去除乘性噪声

4.2.1代码及其注释

A=imread('F:\CF\1.jpg');
%读入图像
B=rgb2gray(A);
%把彩色图像变成灰度图像
Bspeckle=imnoise(B,'speckle');
%加入乘性噪声
h=fspecial('average',3);
%fspecial用于产生预定义滤波器
Bjunzhi=uint8(round(filter2(h,Bspeckle)));
%均值滤波,uin8为变量类型,round为取整,h为滤波参数即均值,h后的变量为要处理的图像
subplot(2,3,1);imshow(B);title('原灰度图像');
subplot(2,3,2);imshow(Bspeckle);title('加入乘性噪声后');
subplot(2,3,3);imshow(Bjunzhi);title('均值滤波后');
subplot(2,3,4);imshow(Bzhongzhi);title('中值滤波后');
subplot(2,3,5);imshow(Bwiener1);title('一次维纳滤波后');
subplot(2,3,6);imshow(Bwiener2);title('二次维纳滤波后');

4.2.2图像仿真



图4 灰度图像,加入乘性噪声后的图像,三种方式滤波后的图像

4.2.3效果分析

对于去除乘性噪声,均值滤波残留的噪声较多,中值滤波虽然效果不错但是处理后较为模糊,维纳滤波效果最好但图像会稍微变暗。

4.3去除椒盐噪声

4.3.1代码及其注释

A=imread('F:\CF\1.jpg');
B=rgb2gray(A);
Bsalt=imnoise(B,'salt & pepper');
h=fspecial('average',3);
Bjunzhi=uint8(round(filter2(h,Bsalt)));
Bzhongzhi=medfilt2(Bgauss,[7,7]);
Bwiener1=wiener2(Bgauss,[7,7]);
Bwiener2=wiener2(Bwiener1,[7,7]);
subplot(2,3,1);imshow(B);title('原灰度图像');
subplot(2,3,2);imshow(Bsalt);title('加入椒盐噪声后');
subplot(2,3,3);imshow(Bjunzhi);title('均值滤波后');
subplot(2,3,4);imshow(Bzhongzhi);title('中值滤波后');
subplot(2,3,5);imshow(Bwiener1);title('一次维纳滤波后');
subplot(2,3,6);imshow(Bwiener2);title('二次维纳滤波后');


4.3.2图像仿真












图5 灰度图像,加入椒盐噪声后的图像,三种方式滤波后的图像

4.3.3效果分析

由滤波效果可以看出,以局部中值法为代表的非线性滤波器对滤除椒盐噪声非常有效,但是非线性滤波器对于随机分布强度的噪声及其滤波效果明显变坏。

4.4去除高斯噪声

4.4.1代码及其注释

A=imread('F:\CF\1.jpg');
B=rgb2gray(A);
Bgauss=imnoise(B,'gaussian');
h=fspecial('average',3);
Bjunzhi=uint8(round(filter2(h,B)));
Bzhongzhi=medfilt2(Bgauss,[7,7]);
Bwiener1=wiener2(Bgauss,[7,7]);
Bwiener2=wiener2(Bwiener1,[7,7]);
subplot(2,3,1);imshow(B);title('原灰度图像');
subplot(2,3,2);imshow(Bgauss);title('加入高斯噪声后');
subplot(2,3,3);imshow(Bjunzhi);title('均值滤波后');
subplot(2,3,4);imshow(Bzhongzhi);title('中值滤波后');
subplot(2,3,5);imshow(Bwiener1);title('一次维纳滤波后');
subplot(2,3,6);imshow(Bwiener2);title('二次维纳滤波后');

4.4.2图像仿真



图5 灰度图像,加入高斯噪声后的图像,三种方式滤波后的图像

4.4.3效果分析

由滤波结果可以看出,以局部均值法为代表的线性滤波器对滤除高斯噪声非常有效而且窗口越大处理效果越明显,但图像会越来越模糊,7×7的窗口比较合适。然而线性滤波易于破坏图像的边缘及细节信息,且无法滤除颗粒噪声。


附件:MATLAB程序

加入乘性噪声

A=imread('F:\CF\1.jpg');
%图像的读入,并将图像数据存入A
B=rgb2gray(A);
%将原彩色图像变成灰度图像,并将图像数据存入B
subplot(2,2,1);
%分割显示窗口,将其分为2X2,将图像放入第一个位置
imshow(B);title('原灰度图像');
%显示灰度图像B,并为其加标题
Bspeckle=imnoise(B,'speckle');
%给图像加入乘性噪声,并存入Bspeckle
subplot(2,2,2);
%分割显示窗口,将其分为2X2,将图像放入第二个位置
imshow(Bspeckle);title('灰度图像加入乘性噪声后');
%显示加入乘性噪声的图像B,并为其加标题
加入椒盐噪声
A=imread('F:\CF\1.jpg');
B=rgb2gray(A);
subplot(2,2,1);
imshow(B);title('原灰度图像');
Bsalt=imnoise(B,'salt & pepper');
subplot(2,2,2);
imshow(Bgauss);title('灰度图像加入椒盐噪声后');
加入高斯噪声
A=imread('F:\CF\1.jpg');
B=rgb2gray(A);
subplot(2,2,1);
imshow(B);title('原灰度图像');
Bgauss=imnoise(B,'gaussian',0.16);
subplot(2,2,2);
imshow(Bgauss);title('灰度图像加入高斯噪声后');
去除乘性噪声
A=imread('F:\CF\1.jpg');
%读入图像
B=rgb2gray(A);
%把彩色图像变成灰度图像
Bspeckle=imnoise(B,'speckle');
%加入乘性噪声
h=fspecial('average',3);
%fspecial用于产生预定义滤波器
Bjunzhi=uint8(round(filter2(h,Bspeckle)));
%均值滤波,uin8为变量类型,round为取整,h为滤波参数即均值,h后
的变量为要处理的图像
Bzhongzhi=medfilt2(Bgauss,[7,7]);
%中值滤波
Bwiener1=wiener2(Bgauss,[7,7]);
%第一次维纳滤波
Bwiener2=wiener2(Bwiener1,[7,7]);
%第二次维纳滤波
subplot(2,3,1);imshow(B);title('原灰度图像');
subplot(2,3,2);imshow(Bspeckle);title('加入乘性噪声后');
subplot(2,3,3);imshow(Bjunzhi);title('均值滤波后');
subplot(2,3,4);imshow(Bzhongzhi);title('中值滤波后');
subplot(2,3,5);imshow(Bwiener1);title('一次维纳滤波后');
subplot(2,3,6);imshow(Bwiener2);title('二次维纳滤波后');
去除椒盐噪声
A=imread('F:\CF\1.jpg');
B=rgb2gray(A);
Bsalt=imnoise(B,'salt & pepper');
h=fspecial('average',3);
Bjunzhi=uint8(round(filter2(h,Bsalt)));
Bzhongzhi=medfilt2(Bgauss,[7,7]);
Bwiener1=wiener2(Bgauss,[7,7]);
Bwiener2=wiener2(Bwiener1,[7,7]);
subplot(2,3,1);imshow(B);title('原灰度图像');
subplot(2,3,2);imshow(Bsalt);title('加入椒盐噪声后');
subplot(2,3,3);imshow(Bjunzhi);title('均值滤波后');
subplot(2,3,4);imshow(Bzhongzhi);title('中值滤波后');
subplot(2,3,5);imshow(Bwiener1);title('一次维纳滤波后');
subplot(2,3,6);imshow(Bwiener2);title('二次维纳滤波后');
去除高斯噪声
A=imread('F:\CF\1.jpg');
B=rgb2gray(A);
Bgauss=imnoise(B,'gaussian');
h=fspecial('average',3);
Bjunzhi=uint8(round(filter2(h,B)));
Bzhongzhi=medfilt2(Bgauss,[7,7]);
Bwiener1=wiener2(Bgauss,[7,7]);
Bwiener2=wiener2(Bwiener1,[7,7]);
subplot(2,3,1);imshow(B);title('原灰度图像');
subplot(2,3,2);imshow(Bgauss);title('加入高斯噪声后');
subplot(2,3,3);imshow(Bjunzhi);title('均值滤波后');
subplot(2,3,4);imshow(Bzhongzhi);title('中值滤波后');
subplot(2,3,5);imshow(Bwiener1);title('一次维纳滤波后');
subplot(2,3,6);imshow(Bwiener2);title('二次维纳滤波后');

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于MATLAB的数字图像处理仿真软件 的相关文章

随机推荐

  • 金融贷款行业实时高精准获客 ——三网运营商大数据

    都说生产是第一因素 但对于任何企业来说 客户来源才是第一因素 在大多数行业 获得客户的困难已经成为行业的挑战 如今 许多行业和企业获得客户的主要来源是在线促销和客户获取 现在几乎每个人都有一部手机 运营商可以根据移动客户的访问行为 通信行为
  • 排查java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException:***

    首先排查 vi etc sysconfig network 没有就加上 HOSTNAME 你的主机名 XXXX 如果有 接着排查 vi etc hosts 没有就加上 127 0 0 1 localhost localdomain loca
  • 2021年全球与中国高速分散机行业市场规模及发展前景分析

    2021年全球与中国高速分散机行业市场规模及发展前景分析 本报告研究全球与中国市场高速分散机的发展现状及未来发展趋势 分别从生产和消费的角度分析高速分散机的主要生产地区 主要消费地区以及主要的生产商 重点分析全球与中国市场的主要厂商产品特点
  • 论文阅读:DeepFake-Adapter: Dual-Level Adapter for DeepFake Detection(Deepfake模型快速调参)

    一 论文信息 论文名称 DeepFake Adapter Dual Level Adapter for DeepFake Detection 作者团队 项目主页 https github com rshaojimmy DeepFake Ad
  • python爬取 百姓网部分数据 + 存入MongoDB数据库详细案例

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 目录 前言 一 实施步骤 二 目标网站 先分析目标网站 三 获取数据 1 引入库 2 请求数据 2 1 获取第一层链接 3 抓取数据 3 1 分析页面 3 2 抓取数据 四
  • 图像可变游程之混乱代码

    图像可变游程之混乱代码 图像可变游程之混乱编码 可变游程编码 VLC 混乱编码 参考代码 图像可变游程之混乱编码 这里 对我的自画像代码作一个简要解释 自画像代码实际上是一个解码器 包括两个部分 图像的可变游程编码 varied lengt
  • ValueError: check_hostname requires server_hostnameWARNING: You are using pip version 21.1.3

    ValueError check hostname requires server hostname WARNING You are using pip version 21 1 3 however version 22 2 2 is av
  • LCD1602芯片的使用——简单易懂

    题目 想在LCD1602上显示两行如下字样 huaianxinxi wantin 想完成上面的显示必须掌握LCD1602芯片的基本知识 将在程序下面附上LCD1602芯片的基本知识 供大家参考 我实现的比较简单 没有什么花哨的显示 大家首先
  • js 聚合函数

    在JavaScript中 聚合函数是一种用于处理数据集合的函数 它们接收一个数据集合作为输入 并返回一个单一的值作为输出 聚合函数通常用于对数据进行统计 计算总和 平均值 最大值 最小值等操作 下面是一些常见的聚合函数的概念 sum 求和
  • Vscode搭建轻量级Matlab开发环境

    一 使用Vscode编写m文件的优势与不足 Matlab的启动速度很慢 为追求效率与编写体验 对于一些简单的m文件编写 我们可以选择在Vscode中进行编写和运行 Vscode插件丰富 配置好Matlab环境后 可以实现以下功能 代码高亮
  • MATLAB及Simulink----基本知识简介

    目前 MATLAB已成为国际上最为流行的科学计算与工程计算软件工具之一 如今的MATLAB已经不仅仅是矩阵运算或数值计算的软件 它已经发展成为一种具有广泛应用前景 全新的计算机高级编程语言 可以说它是 第四代 计算机语言 自20世纪90年代
  • Sqli-labs之Less-37

    Less 37 POST型 绕过 MYSQL real escape string 本关与 34 关是大致相似的 区别在于处理 post 内容用的是 mysql real escape string 函数 而不是 addslashes 函数
  • DLS 深度受限搜索 狼羊 过河 问题 python 实现

    深度受限搜索 DLS 简单地说就是深度有限搜索 DFS 深度限制 limit DLS伪代码 实例 狼羊 过河 问题 3只羊和3头狼在河岸A 想要过河抵达河岸B 它们只有一艘船并且船上必须有1 2只生物 当 任意一边的狼的数量大于羊时 羊会被
  • 07模块和包(函数)

    一 函数的定义和调用 1 定义 函数 我们可以将在不同的地方要调用的相同的功能的代码进行分装 打包 定义一个函数 进行封装 例如 假设我们想在登录和注册时验证本人的手机号码是否正确时 我们可以将验证手机号码的过 程封装进函数里 之后进行使用
  • 算法 单链表删除重复元素

    1 删除重复的元素 保留一个 leetcode题目 代码 Definition for singly linked list public class ListNode int val ListNode next ListNode int
  • Golang非递归构建菜单树(O(n)时间复杂度,任意深度的递归树都能构造,适用于深层、大量数据的树结构构造)

    刚刚学习到Go的接口部分 希望对之前的基础部分 struct slice map 做一个简单的总结 希望各位Go语言方面的大佬给一点意见 非常感谢 编写过程中存在的一些疑惑 TreeNode结构中定义的Child 和SetChild 方法都
  • java实现解析html网页爬虫

    java解析html需要用到jsoup库来爬虫 Jsoup是一个流行的开源库 用于解析 操作和遍历HTML文档 它提供了类似于jQuery的API 方便地选择和操作HTML元素 其操作非常像jQuery的写法 下面就来详细介绍一下怎么爬数据
  • Android(java)学习笔记24:自定义异常类

    1 自定义异常 考试成绩必须在0 100之间 很明显java没有对应的异常 需要我们自己来做一个异常 自定义异常 继承自Exception 继承自RuntimeException 下面是一个代码示例 package cn itcast 08
  • 组件化icon,来实现根据传入数据不同而显示不同图标代码。

    目标 把classMap显示不同的icon功能抽象成一个组件 分析 需要传入的参数有icon尺寸 icon种类 所以下面icon vue里面定义了2个参数size和type 由父组件传入 难点 css代码层叠关系这里要理清 另外vue中绑定
  • 基于MATLAB的数字图像处理仿真软件

    1 引言 1 1MATLAB介绍 MATLAB是矩阵实验室 Matrix Laboratory 的简称 是美国MathWorks公司出品的商业数学软件 用于算法开发 数据可视化 数据分析以及数值计算的高级技术计算语言和交互式环境 主要包括M