MATLAB数字图像小程序设计
目录
- 设计目的…………………..………………….…………2
- 设计要求………………….………………………….….2
- 设计的内容………………..……………………….……2
- 课题分析…………………………………………….………..3
- 总体设计……………….…………………………….……….3
- 具体设计……………………………………………..…….…4
- 文件……………….………………………………….……….4
6.1.1、打开………..…………………………………….…………4
6.1.2、保存…………………………..………………….…………4
6.1.3、打印…………………………..………………….…………4
6.1.4、退出……………………..……………………………….…4
6.2、直方图统计…………………………..…………………………………4
6.2.1、R直方图………………………..………………….……………4
6.2.2、G直方图………………………..………………….……………4
6.2.3、B直方图…………………………..……………….……………4
6.3、图像增强处里…………………………………..……………………5
6.3.1、直方图均衡化…………………….…………….………………5
6.3.2、对比度展宽………………….…………….…………………6
6.3.3、动态范围调整…………………………….…………………6
6.3.4、空间域平滑算法…………………………….…………………6
6.3.4.1、均值滤波……………………………………………….7
6.3.4.2、中值滤波…………………………………………………7
6.3.4.3、边界保持滤波……………………………………………8
6.4、图像分割………………………………..…………..………………8
6.4.1、均匀性度量法……………………………………………………8
6.4.2、类间最大距离法…………………………………………….9
6.4.3、局部阈值法…………………………………………………..9
6.5、颜色空间转化……………………………………..………..………9
6..5.1、RGB转HSV……………………………………………………10
6.5.2、RGB转HIS…………………………………………………….10
6.6、其他图像处理功能……………………………………………………10
6.6.1、锐化…………………………………………………………….10
6.6.2、傅里叶………………………………………………………….10\\
- 程序调试及结果分析………………….……………………11
- 心得体会…………………………….………………………11
- 参考文献…………………………….………………………11
- 附录………………………….………………………………12
一、设计目的
1、提高分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基本原理与方法。
2、熟悉掌握一门计算机语言,可以进行数字图像的应用处理的开发设计。
二、设计要求
- 要求独立完成设计项目,开发工具为MATLAB,具体自选。各组长有责任督促组员完成任务并提交报告;
- 时间为4月28日~6月28日为其两个月的业余时间。
三、设计的内容
学习MATLAB GUI程序设计,利用MATLAB图像处理工具箱,设计和实现自己的Photoshop 。要求:按照软件工程方法,根据需求进行程序的功能分析和界面设计,给出设计详细说明。然后按照自己拟定的功能要求进行程序设计和调试。
整个系统要完成的基本功能大致如下:
- 能对图像文件(bmp、 jpg、 tiff、 gif等)进行打开、保存、另存、打印、退出等功能操作;
- 数字图像的统计信息功能:直方图的统计及绘制;
- 数字图像的增强处理功能:
- 直方图的均衡化
- 对比度展宽
- 动态范围调整
- 空间域平滑算法的各种算法(如均值滤波、中值滤波、边界保持的滤波方法等)
4、数字图像由RGB转换成HIS空间并分别显示其分量图。
5、数字图像分割功能:
可采用两种以上方法进行图像分割。
总体设计
由于要实现的功能并不是很多,所以在排版的过程中,把各个功能都安排在目录栏上,整体安排如下图所示:
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
- 具体设计
- 文件
6.1.1、打开
为了让使用者更方便的使用,所以在设计的时候,通过对话框的形式来选择文件,选择uigetfile函数来实现,uigetfile函数显示一个打开文件对话框,该对话框自动列出当前路径下的目录和文件,由于这个GUI程序的操作对象是图像文件。
Uigetfile函数的调用格式为[name,path]=yigetfile(…), 在按下对话框中的执行按钮“打开”后,返回选择的文件名和路径,分别保存到“ name”和“path”中。如果按下取消按钮或是发生错误,则返回值是0。 根据返回值的情况,如果是0,则弹出提示错误的对话框,否则,通过imread函数读出图像数据,把图像数据赋值给全局变量handles.image。
6.1.2、保存
同样也通过对话框的形式来保存图像数据,通过uigetfile函数选择文件名和路径,用getimage(gca)取出坐标2变换后的图像数据保存到变量i,最后用imwrite函数,把数据i存到指定的文件。
6.1.4、退出
退出比较简单,程序如下所示:
clc;
close all;
close(gcf);
6.1.3、打印
打印功能没能实现,将它设置为不可使用,可用如下代码实现
set(handles.print, 'Enable','off' ); %放在open_callback函数末尾
set(handles.print, 'Enable','off' );%放在two_OpeningFcn中
- 直方图统计
6.2.1、R直方图
由于RGB图像是三维图像,所以图像数据是一个三维数组,为了显示R直方图像,把三维图像降为二维,且是当最后一个参数为1时是R直方图:
x=imhist(handles.image(:,:,1)); %当然也可以选择(:,:,2) 或(:,:,3)
imshow(y);
处理前后图片效果如下:
6.2.2、G直方图
G直方图与R直方图的程序差不多只需将数值为1的R直方图变成2即可成为G直方图
x=imhist(handles.image(:,:,2));
6.2.3、B直方图
同理可得B直方图
x=imhist(handles.image(:,:,3));
RGB三种直方图统计图如下:
![](/assets/blank.gif)
![](/assets/blank.gif)
原图 R直方图
![](/assets/blank.gif)
![](/assets/blank.gif)
G直方图 B直方图
- 图像增强处理
6.3.1、直方图均衡化
在balance_Callback回退函数中实现直方图均衡化
每个回退函数中都要获取图片,上面的RGB直方图也一样需获取打开的图片。打开图片的为以下程序代码:
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
直方图均衡化是判断是否为灰度图。用函数isrgb了来判断,不是灰度则将其转化,否则就直接用函数:
histeq(handles.image)% handles.image是获取的图片
来直方图均衡化处理图片
图片前后效果如下:
![](/assets/blank.gif)
![](/assets/blank.gif)
6.3.2、 对比度展宽
对图像的对比度展宽刻可自己编写算法来处理,同样的,,处理结果如图:
![](/assets/blank.gif)
6.3.3、动态范围调整
共图像处理功能未能实现,程序中已给出处理其图像的代码,但有错误,不能找出其错位,将其正确的处理,
原因是:nw=1./(b-a).*(h-a.*ones(sx,sy));
Error:Matrix dimensions must agree
也查过资料修改该语句,有的资料说是乘除和幂方要改成点乘点除,点幂方,这个是合理,但是改正后仍然有错,是在无能为力,
代码在后面将给出,可供参考。
6.3.4、空间域平滑算法
6.3.4.1、均值滤波
经常用到的噪声有两种,高斯噪声,椒盐噪声,可以通过以下两个函数来实现:
y=imnoise(handles.img,'gaussian',p1,p2);%高斯噪声
y=imnoise(x,'salt & pepper',p1); %椒盐噪声
均值滤波中可对高斯滤波,也可以对椒盐滤波,设计过程中采用其一种图片进行处理。但两种处理的效果就不同,对高斯噪声处理的效果更加明显
均值滤波是一种采取平均灰度值的方法进行滤波,用imnoise获得噪声的图片。这个函数可获得高斯噪声,亦可获得椒盐噪声。在采用函数conv2进行均值处理,处理前后的图片比较如下:
![](/assets/blank.gif)
![](/assets/blank.gif)
6.3.4.2、中值滤波
中值滤波同均值滤波的程序差不多,只是进行滤波的原理不同,则采用不同的函数进行代替,用以下函数可进行中值滤波处理:
I = imnoise(handles.image,'salt & pepper', 0.02);
imshow(I);
j=medfilt2(I);
前后图片效果如下:
![](/assets/blank.gif)
![](/assets/blank.gif)
6.3.4.3、边界保持滤波
原理不同,采用knn函数是处理边界保持滤波的,程序代码的形式跟前两种滤波差不多:
I = imnoise(handles.image,'salt & pepper', 0.02);
imshow(I);
j=knn2(I);
前后图片效果如下:
![](/assets/blank.gif)
![](/assets/blank.gif)
- 图像分割:
图象分割是按照某些特性(如灰度级,频谱,颜色,纹理等)将图象划分成一些区域,在这些区域内其特性是相同的或者说是均匀的,两个相邻区域彼此特性则是不同的,其间存在着边缘或边界
6.4.1、均匀性度量法
当图像被分为目标物和背景两个类时,属于同一类别的像素值分布方差最小,也即具有均匀性。
给定一初始阈值Th=Th0,将图像分为C1和C2两类
![](https://ss.csdn.net/p?https://pic3.zhimg.com/v2-35d60d7e94f9941336825436ff9ca2aa_b.jpg)
分别计算两类中的方差
分别计算两类在图像中的分布概率
选择最佳阈值 Th=Th*, 将图像分为C1和C2两类,满足
均匀性度量方法的处理结果:
![](/assets/blank.gif)
![](/assets/blank.gif)
6.4.2、类间最大距离法.
采用最佳阈值分割后,两类之间的差异最大,且差异采用两类中心与阈值间的距离差度量
给定一初始阈值Th=Th0,将图像分为C1和C2两类
分别计算两类的灰度均值
![](https://ss.csdn.net/p?https://pic3.zhimg.com/v2-1bf87ec35deae28339c9ac426708fd1e_b.jpg)
计算相对距离度量值 s
选择最佳阈值 Th=Th*, 将图像分为C1和C2两类
![](https://ss.csdn.net/p?https://pic4.zhimg.com/v2-5869ea9b706c2ac816a41ad8bee3795f_b.jpg)
图片效果:
![](/assets/blank.gif)
![](/assets/blank.gif)
6.4.3、局部阈值法
不均匀照射,物体背景对比明显, 不能只使用一门限
灰度级校正。
图象分成小块,选择局部门限
局部阈值法的处理前后结果:
![](/assets/blank.gif)
![](/assets/blank.gif)
6.5、 颜色空间转化
6..5.1、RGB转HSV
色彩空间相互转化:
其中有很多种色彩空间,这里只介绍两种转换关系:
RGB转HSV,图像处理中有专门的函数将其进行转化,即rgb2hvs函数
转化图像前后对比如下:
![](/assets/blank.gif)
6.5.2、RGB转HIS
首先获取图像的 RGB 3个通道
R=w(:,:,1);
G=w(:,:,2);
B=w(:,:,3);
观察HSI通道图像
因系统没有rgb2hsi函数,只有rgb2hsv函数,可自己编写程序实现算法
,用一个循环处理,分别得到HIS的色度,饱和度以及强度图,代码在后面实现
图形处理效果如下:
![](/assets/blank.gif)
6.6、 其他图像处理功能
6.6.1、锐化
6.6.2、傅里叶
这两个是附加的图像处理功能,在次不做过多的说明,可向大家看看处理图像结果进行对比一下,看看效果,可在后面附上代码
![](/assets/blank.gif)
![](/assets/blank.gif)
锐化. 四种傅里叶变
参考文献
- 郑阿奇,曹戈,赵阳.MATLAB实用教程[M].北京:电子工业出版社
- 精通matlab6[1].5_(北航_张志涌).pdf
【3】MATLAB 编程 (第二版)
MATLAB Programming for Engineers Second Edition)
Stephen J. Chapman 著 邢树军 郑碧波 译
【4】相关的MATLAB图像处理函数
- 附录
function varargout = two(varargin)
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @two_OpeningFcn, ...
'gui_OutputFcn', @two_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before erzhi is made visible.
function two_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
---------------------------------------------------------
%接下来是菜单的程序
---------------------------------------------------------
function file_Callback(hObject, eventdata, handles)
--------------------------------------------------------
%文件打开程序
function open_Callback(hObject, eventdata, handles)
[name,path]=uigetfile({'*.bmp'},'载入图像');
if isequal(name,0)|isequal(path,0)
errordlg('没有选中文件','出错');
return;
else
x=imread([path,name]);
axes(handles.axes1);
imshow(x);
handles.img=x;
handles.noise_img=x;
guidata(hObject,handles)
end
---------------------------------------------------
function save_Callback(hObject, eventdata, handles)
%文件保存
[filename,pathname] = uiputfile('*.bmp','图片保存为');
if isequal([filename,pathname],[0,0])
errordlg('没有保存','出错');
return;
else
file=strcat(pathname,filename);
(handles.axes2);
i=getimage(gca);
imwrite(i,file);
end
-----------------------------------------------------
function exit_Callback(hObject, eventdata, handles)
clc;
close all;
close(gcf);
---------------------------------------------------------
% 直方图
------------------------------------------------------
function zhf_Callback(hObject, eventdata, handles)
-------------------------------------------------
function red_Callback(hObject, eventdata, handles)
% R直方图
data (see GUIDATA)
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
x=imhist(handles.image(:,:,1));
x1=x(1:10:256);
horz=1:10:256;
bar(horz,x1);
set(handles.axes2,'xtick',0:50:255); ------------------------------------------------------
function green_Callback(hObject, eventdata, handles)
% G直方图
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
x=imhist(handles.image(:,:,2));
x1=x(1:10:256);
horz=1:10:256;
bar(horz,x1);
set(handles.axes2,'xtick',0:50:255);
------------------------------------------------------
function blue_Callback(hObject, eventdata, handles)
% B直方图
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
%if isrgb(handles.img)
x=imhist(handles.image(:,:,3));
x1=x(1:10:256);
horz=1:10:256;
bar(horz,x1);
set(handles.axes2,'xtick',0:50:255);
-----------------------------------------------------
%图像增强处理
---------------------------------------------------------
function zhf_Callback(hObject, eventdata, handles)
-------------------------------------------------
function balance_Callback(hObject, eventdata, handles)
%直方图均衡化
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
if isrgb(handles.image)
a=histeq(handles.image(:,:,1));
b=histeq(handles.image(:,:,2));
c=histeq(handles.image(:,:,3));
k(:,:,1)=a;
k(:,:,2)=b;
k(:,:,3)=c;
imshow(k);
else
h=histeq(handles.image);
imshow(h);
end
function zq_Callback(hObject, eventdata, handles)
-----------------------------------------------------------------
function duibidu_Callback(hObject, eventdata, handles)
%对比度展宽
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
h=im2double(handles.image);
[sx,sy]=size(h);
nw=h.^0.3;
subplot(2,2,1);
imshow(h);
title('original');
subplot(2,2,2);
imshow(nw);
title('r=0.4');
subplot(2,2,3);
imshow(h.^0.5);
title('r=0.7');
subplot(2,2,4);
imshow(h.^2);
title('r=3');
--------------------------------------------------------------------
function dongtai_Callback(hObject, eventdata, handles)
%动态调整范围
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
h=im2double(handles.image);
a=0.01;
b=0.35;
[sx,sy]=size(h);
[w,n]=find(h(:)<=a);
h(n)=0;
[w1,n1]=find(h(:)>b);
h(n1)=1;
nw=1./(b-a).*(h-a.*ones(sx,sy));
subplot(1,2,1);
imshow(h);
subplot(1,2,2);
imshow(nw);
-----------------------------------------------------------------
%空间域平滑算法
function pinghua_Callback(hObject, eventdata, handles)
-----------------------------------------------------------------
function junzhi_Callback(hObject, eventdata, handles)
%均值滤波
h=[1 1 1;1 1 1;1 1 1];
h=h/9;
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
x=imnoise(handles.image,'gaussian',0,0.02);
imshow(x);
j=conv2(x,h);
figure,imshow(j,[]);
--------------------------------------------------------------------
function zhongzhi_Callback(hObject, eventdata, handles)
%中值滤波
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
% I=imnoise(I,'gaussian',0,0.02);
I = imnoise(handles.image,'salt & pepper', 0.02);%
j=medfilt2(I);
figure,imshow(j,[]);
--------------------------------------------------------------------
function bianjie_Callback(hObject, eventdata, handles)
% 边界保持滤波
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
% I=imnoise(I,'gaussian',0,0.02);
I = imnoise(handles.image,'salt & pepper', 0.02);
imshow(I);
j=knn2(I);
figure,imshow(j,[]);
-----------------------------------------------------------------
--------------------------------------------------------------------
function junyunxing_Callback(hObject, eventdata, handles)
%均与性度量法
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
v=double(handles.image);
[sx,sy]=size(v);
num=sx*sy;
t=[];
for th=6:254
[r1,c1]=find(v(:)>=th);
[r2,c2]=find(v(:)<th);
if(length(r1)~=0 & length(c1)~=0 )
L1=v(r1);
else
L1=[];
end
if(length(r2)~=0 & length(c2)~=0 )
L2=v(r2);
else
L2=[];
end
m1=mean(L1(:)); m2=mean(L2(:));
Var1=sum((L1(:)-m1).^2);Var2=sum((L2(:)-m2).^2);
Var1=var(L1(:));Var2=var(L2(:));
P1=length(L1(:))/num;
P2=length(L2(:))/num;
t=[t,P1*Var1+P2*Var2];
end
[c,l]=min(t);
B=v;
[r1,c1]=find(v(:)>=l+5);
[r2,c2]=find(v(:)<l+5);
B(r1)=255; B(r2)=0;
imshow(uint8(B));
% --------------------------------------------------------------------
function jubuyuzhi_Callback(hObject, eventdata, handles)
%局部阈值法
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
v=rgb2gray(handles.image);
imshow(v); R=zeros(size(v));
H = FSPECIAL('gaussian',9,2.4);
v = imfilter(v,H);
t=graythresh(v); t=t*255;
[c,l]=find( v(:)>t);
R(c)=1;
[x,y]=size(R); q=R;
for i=10:x-10
for j=10:y-10
if R(i,j)==0
t=[R(i-1,j-1),R(i-1,j),R(i-1,j+1),R(i,j-1),R(i,j+1),R(i+1,j-1),R(i+1,j),R(i+1,j+1)];
if sum(t)==0
q(i,j)=1;
end
end
end
end
figure, imshow(q,[]);
--------------------------------------------------------------------
function leijianzuidajuli_Callback(hObject, eventdata, handles)
%类间最大法
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
X=rgb2gray(handles.image);
[r,c]=size(X);
figure (1)
subplot(1,2,1)
imshow(X)
R=zeros(1,256);
for i=50:150
Xi0=X0<=i;
N0=sum(sum(Xi0));
Xm0=X0(Xi0);
u0=sum(Xm0)/N0;
Xi1=X0>i;
N1=sum(sum(Xi1));
Xm1=X0(Xi1);
u1=sum(Xm1)/N1;
R(i+1)=(u1-i)*(i-u0)/((u1-u0)^2);
end
Th=find(R==max(R(51:151)))-1
X2=zeros(r,c);
for i=1:r
for j=1:c
X2(i,j)=X0(i,j)>Th;
end
end
subplot(2,2,2)
imshow(X2)
-----------------------------------------------------------------
%颜色空间转化
--------------------------------------------------------------------
function hsv_Callback(hObject, eventdata, handles)
%RGB转HSV
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
hv=rgb2hsv(handles.image);
subplot(2,2,1);
imshow(hv);
title('RGBHSV');
%RGB=reshape(ones(64,1)*reshape(jet(64),1,192),[64,64,3]);
H=hv(:,:,1);
S=hv(:,:,2);
V=hv(:,:,3);
subplot(2,2,2);
imshow(H) ;
title('§§');
subplot(2,2,3);
imshow(S);
title('§§');
subplot(2,2,4);
imshow(V);
title('§§');
--------------------------------------------------------------------
function HIS_Callback(hObject, eventdata, handles)
%RGB转HSI
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
W=im2double(handles.image);%获得double型的图形矩阵
[m,n,q]=size(W);
R=W(:,:,1);
G=W(:,:,2);
B=W(:,:,3);
% 改变通道来观察图像
H=zeros(m,n);
S=H;
for i1=1:m
for i2=1:n
numerator=0.5*(R(i1,i2)-G(i1,i2)+R(i1,i2)-B(i1,i2));
denominator=sqrt((R(i1,i2)-G(i1,i2))^2+(R(i1,i2)-B(i1,i2))*(G(i1,i2)-B(i1,i2)));
theta=acos(numerator/denominator)*180/pi;
if(B(i1,i2)<=G(i1,i2))
H(i1,i2)=theta;
else
H(i1,i2)=360-theta;
end
min1=min(R(i1,i2),G(i1,i2));
min1=min(B(i1,i2),min1);
S(i1,i2)=1-3/(R(i1,i2)+G(i1,i2)+B(i1,i2))*min1;
end
end
I=(R+G+B)/3;
figure,subplot(1,3,1),imshow(H,[]),title('色度图H');
set(gcf,'outerposition',get(0,'screensize'));
set(gcf,'NumberTitle','off','Name','HSI通道图像');
subplot(1,2,2),imshow(S),title('饱和度图S');
subplot(1,2,3),imshow(I),title('强度图I');
% -----------------------------------------------------------------
%其他图像处理
---------------------------------------------------------------------------
function fly_Callback(hObject, eventdata, handles)
%傅里叶变化
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
[m,n]=size(handles.image);
d=zeros(m,n);
d(60:100,60:100)=1;
w=fft2(d);
w1=fftshift(w);
[sx,sy]=size(d);
subplot(2,2,1); imshow(d);
subplot(2,2,2); imshow(abs(w1));
for i=1:sx
t= fft(d(i,:));
len=length(t)/2;
F1(i,:)=[(t(len+1:end)),t(1:len)];
end
for i=1:sy
F2=fft(F1(:,i));
len=length(F2)/2;
F(:,i)=[(F2(len+1:end));F2(1:len)];
end
subplot(2,2,3);
imshow(abs(F1));
subplot(2,2,4);
imshow((abs(F)));
function ruihua_Callback(hObject, eventdata, handles)
%锐化
k=2;
h1=[-1 0 1;-k 0 k;-1 0 1];
h2=[1 k 1;0 0 0;-1 -k -1];
set(handles.axes2,'HandleVisibility','ON');
axes(handles.axes2);
I=rgb2gray(handles.image);
subplot(121);imshow(I);
J1(:,:)=conv2(I(:,:),h1);
J2(:,:)=conv2(I(:,:),h2);
J=abs(J1)+abs(J2);
subplot(122);
imshow((J),[0 255]);
MATLAB数字图像小程序设计相关推荐
- 【Matlab系列】一维信号/数字图像小波阈值去噪(软阈值,硬阈值,固定阈值)【含Matlab源码】
Date: 2022.4.23 文章目录 前言 0.代码获取方式 1.部分matlab代码 2.一维信号小波阈值去噪效果图 3.数字图像小波阈值去噪效果图 3.1.添加高斯噪声 3.2.添加随机噪声 ...
- 基于matlab的数字图像边缘检测算法研究,基于MATLAB数字图像边缘检测算法的研究与对比分析...
·161· 居 舍 研究探讨 2017年10月(中) 1 绪论 图像边缘中通常包含着重要的边界信息,这些边界信息便于分析和研究图像.另外,边缘检测可以大大降低图像处 理的工作量,将提高图像分析的效率. ...
- matlab游戏程序,matlab游戏小程序
小程序有什么游戏是比较受欢迎的_计算机软件及应用_IT/计算机_专业资料.现在很... 总有一款PPT 适合您[最新出品\\精心整理\\倾情奉献\\敬请珍惜] 微信小程序介绍 WeChat Mini ...
- matlab小波分析毕业设计,基于matlab的小波去噪分析毕业论文
基于matlab的小波去噪分析毕业论文 基于 matlab 的小波去噪分析在图像处理中的应用研究 摘 要 本文首先介绍了小波变换的发展状况以及其基本理论知识,包括连续小波变换和离 散小波变换:接着对基 ...
- 实战matlab之并行程序设计.pdf,实战Matlab之并行程序设计_IT教程网
资源名称:实战Matlab之并行程序设计 内容简介: <实战Matlab之并行程序设计>通过阅读和学习,读者可以掌握基于多种平台(多核.多处理器.集群和GPU等),利用多项技术(Matla ...
- WeChat:微信小程序设计流程注册完善、设计开发、审核发布之详细攻略
WeChat:微信小程序设计流程注册&完善.设计&开发.审核&发布之详细攻略 目录 微信小程序设计流程 1.注册 2.小程序信息完善 3.开发小程序 3.1.开发文档 3.2. ...
- delphi控件切图界面闪烁_小程序设计,不得不说的7个坑 (附资源:新版小程序 UI 控件,Sketch 版)...
一年半的时间,我们亲眼见证了小程序从萌芽成长为参天大树,支撑起我们现今的生活方式,让我们在他的树荫下享受着舒适.很多公司自然不会错过这次机会,纷纷加入到小程序的行列. 这对设计和开发而言算是一次挑战, ...
- 小程序设计避免犯什么错_新设计师犯下的5种印刷错误以及如何避免
小程序设计避免犯什么错 Over the last year and a half, I've had the opportunity to teach the basics of typograph ...
- matlab 程序 收缩,基于MATLAB的小波收缩去噪方法研究(程序)
基于MATLAB的小波收缩去噪方法研究(程序)(课题申报表,任务书,开题报告,中期检查表,外文翻译,论文15400字,程序,答辩PPT) 摘 要 信号在采集.传输和获取的过程中难免会受到各种噪声的干扰 ...
最新文章
- ERP已死,中台已凉,DDD称王!
- 与老黄的技术对聊总结
- map/reduce的概念
- C语言开发笔记(六)实参和形参
- WordPress后台添加侧边栏菜单
- SQLSERVER字符串截取------STUFF
- Android 关于后台杀死App之后改变服务器状态的一些尝试
- oracle11gr2架构图,Oracle 11g R2 体系结构
- 常用服务和开放端口对照表
- windows 清除IE浏览器缓存的脚本
- MVP+RecylerView显示数据
- 被动语态 动词的过去分词
- 判断闰年简单逻辑运算符
- 搜狗二季度财报解读:有扎实的现在,也有性感的未来
- 获取当前的url并移除不想要的字段
- 关于机器学习特征选择的方法总结
- 虎牙在全球 DNS 秒级生效上的实践
- 吴恩达深度学习课后作业course2第三周 超参数调试、Batch正则化和程序框架
- codeforces#710
- 关于用户 'SA' 登录失败
热门文章
- python在Excel文件之间复制工作表
- WPS文字如何将纸张大小由A4调整为A3默认纸张大小是A4
- Python可开一家AI公司的语音克隆源码方案
- Network and Distributed System Security (NDSS) Symposium 2017
- 支付宝蜻蜓VS微信青蛙,大佬为何抢分刷脸支付这杯羹
- CloudCompare功能介绍-Curvature 曲率
- Docker搭建Redis主从模式
- php生成字母头像,php 按照中文字母名字排序,并把相应的头像显示出来
- 你所关心的外贸获客软件功能都在这里了!
- #劲舞团# 熬点小米稀饭喝,有六年没有喝过了。确实是家长的味道。