最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

《MATLAB应用》综合实验

来源:动视网 责编:小OO 时间:2025-10-03 04:21:15
文档

《MATLAB应用》综合实验

《MATLAB应用》课程设计一、课程设计的目的综合运用MATLAB工具箱实现图像处理的GUI程序设计。二、课程设计的基本要求1)熟悉和掌握MATLAB程序设计方法2)掌握MATLABGUI程序设计3)熟悉MATLAB图像处理工具箱4)学会运用MATLAB工具箱对图像进行处理和分析三、课程设计的内容要求利用MATLABGUI设计实现图像处理的图形用户界面,利用MATLAB图像处理工具箱实现以下的图像处理功能:双击打开MATLAB7.0——File——New——GUI——单击axes1按钮——调整
推荐度:
导读《MATLAB应用》课程设计一、课程设计的目的综合运用MATLAB工具箱实现图像处理的GUI程序设计。二、课程设计的基本要求1)熟悉和掌握MATLAB程序设计方法2)掌握MATLABGUI程序设计3)熟悉MATLAB图像处理工具箱4)学会运用MATLAB工具箱对图像进行处理和分析三、课程设计的内容要求利用MATLABGUI设计实现图像处理的图形用户界面,利用MATLAB图像处理工具箱实现以下的图像处理功能:双击打开MATLAB7.0——File——New——GUI——单击axes1按钮——调整
《MATLAB应用》课程设计

一、课程设计的目的

综合运用MATLAB工具箱实现图像处理的GUI程序设计。

二、课程设计的基本要求

1)熟悉和掌握MATLAB程序设计方法

2)掌握MATLAB GUI程序设计

3)熟悉MATLAB图像处理工具箱

4)学会运用MATLAB工具箱对图像进行处理和分析

三、课程设计的内容

要求利用MATLAB GUI设计实现图像处理的图形用户界面,利用MATLAB图像处理工具箱实现以下的图像处理功能:

双击打开MATLAB 7.0——File——New——GUI——单击axes1按钮——调整axes1大小——单击OK按钮——调整按钮大小和颜色,修改名称。

1)运行结果预览。

2)软件说明

1.打开、保存:

本软件可以打开(OPEN)任意路径的图像文件,并可将处理后的图像保存(SAVE)在任意路径。

2.原图:

本软件可以显示原始图像(原图),以方便对其进行其他图像处理。

3.截图:

本软件可以截取(截图)原图以及处理后的图像的任意区域,并可将其保存在任意路径,同时还可对其进行处理(缩放与亮度除外)与保存。

4.灰度:

本软件可以将RGB图像显示为灰度图像。

5.亮度:

本软件可以调整原始图像的亮度。

6.缩放:

本软件可以对原始图像进行最邻近插值法和双线性插值法两种方法的缩放,放大倍数最大为3,缩小倍数最小为0.1.

7.直方图与直方图均衡:

本软件可以对原始图像进行直方图统计和直方图均衡。

8.噪声与滤波:

本软件可以对原始图像进行加噪(高斯、椒盐)处理,与滤波(中值、自适应)处理,并可累计加噪与滤波。

3)图像的读取和保存

读取图片:

保存图片:

4)设计图形用户界面,让用户能够对图像进行任意的亮度和对比度变化调整,显示和对比变换前后的图像。

变暗图像:

变亮图像:

灰度图像:

5)设计图形用户界面,让用户能够用鼠标选取图像感兴趣区域,显示和保存该选择区域。

截图:

6)编写程序通过最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的操作,并保存,比较几种插值的效果。

最邻近插值法缩小一倍:

双线性插值法缩小一倍:

最邻近插值法放大1.5倍:

双线性插值法放大1.5倍:

结论:双线性插值法缩放的效果比最邻近插值法的效果好些,但其处理时间也要长些。

7)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。

直方图:

直方图均衡:

6)能对图像加入各种噪声,并通过几种滤波算法实现去噪并显示结果,比较去噪效果。

加高斯噪声:

加高斯噪声后中值滤波:

加高斯噪声后自适应滤波:

加椒盐噪声:

加椒盐噪声后中值滤波:

加椒盐噪声后自适应滤波:

结论:对高斯噪声或椒盐噪声的滤波处理,中值滤波的效果比自适应滤波的效果好些,但会使图像变得模糊。

四、详细代码

1.function varargout = KCSJ(varargin)

2.% KCSJ M-file for KCSJ.fig

3.

4.

5.%

6.

7.

8.%

9.

10.

11.%

12.

13.

14.

15.

16.

17.%

18.

19.

20.%

21.% See also: GUIDE, GUIDATA, GUIHANDLES

22.

23.% Copyright 2002-2003 The MathWorks, Inc.

24.

25.% Edit the above text to modify the response to help KCSJ

26.

27.% Last Modified by GUIDE v2.5 16-Oct-2011 11:56:10

28.

29.% Begin initialization code - DO NOT EDIT

30.gui_Singleton = 1;

31.

32.

33.

34.

35.

36.                   'gui_Callback',   []);

37.if nargin && ischar(varargin{1})

38.

39.end

40.

41.if nargout

42.

43.else

44.

45.end

46.% End initialization code - DO NOT EDIT

47.

48.

49.% --- Executes just before KCSJ is made visible.

50.function KCSJ_OpeningFcn(hObject, eventdata, handles, varargin)

51.% This function has no output args, see OutputFcn.

52.

53.% eventdata  reserved - to be defined in a future version of MATLAB

54.

55.

56.

57.% Choose default command line output for KCSJ

58.handles.output = hObject;

59.

60.% Update handles structure

61.guidata(hObject, handles);

62.

63.% UIWAIT makes KCSJ wait for user response (see UIRESUME)

.% uiwait(handles.figure1);

65.

66.

67.% --- Outputs from this function are returned to the command line.

68.function varargout = KCSJ_OutputFcn(hObject, eventdata, handles) 

69.% varargout  cell array for returning output args (see VARARGOUT);

70.

71.% eventdata  reserved - to be defined in a future version of MATLAB

72.

73.

74.% Get default command line output from handles structure

75.varargout{1} = handles.output;

76.

77.%-------------------------------------------------------------------------

78.% --- Executes on button press in OPEN.

79.function OPEN_Callback(hObject, eventdata, handles)

80.

81.% eventdata  reserved - to be defined in a future version of MATLAB

82.

83.

84.file=[path,name];

85.x=imread(file);  %

86.handles.img=x;

87.guidata(hObject,handles);  

88.

.global G;

90.G=x;

91.

92.%-------------------------------------------------------------------------

93.% --- Executes on button press in pushbutton2.

94.function SAVE_Callback(hObject, eventdata, handles)

95.

96.% eventdata  reserved - to be defined in a future version of MATLAB

97.

98.

99.file=[path,name];

100.global G;

101.

102.

103.

104.%-------------------------------------------------------------------------

105.% --- Executes on button press in YuanTu.

106.function YuanTu_Callback(hObject, eventdata, handles)

107.

108.% eventdata  reserved - to be defined in a future version of MATLAB

109.

110.x=handles.img;

111.imshow(x);title('原始图像');

112.global G;

113.G=x;

114.

115.%--------------------------------------------------------------------------

116.% --- Executes on button press in pushbutton3.

117.function LiangDu_Callback(hObject, eventdata, handles)

118.

119.% eventdata  reserved - to be defined in a future version of MATLAB

120.

121.v=get(handles.slider1,'Visible');

122.if strcmp(v,'on');

123.

124.else strcmp(v,'off');

125.

126.end

127.set(handles.slider1,'Visible',v);

128.set(handles.text1,'Visible',v);

129.

130.

131.% --- Executes on slider movement.

132.function slider1_Callback(hObject, eventdata, handles)

133.

134.% eventdata  reserved - to be defined in a future version of MATLAB

135.

136.% Hints: get(hObject,'Value') returns position of slider

137.

138.x=handles.img;

139.s=size(x);

140.a=uint8(ones(s(1),s(2),s(3)));

141.v=get(handles.slider1,'Value');

142.str=sprintf('%d',v);

143.set(handles.text1,'String',str);

144.if v>=1

145.

146.else

147.

148.end

149.imshow(y);

150.global G;

151.G=y;

152.

153.% --- Executes during object creation, after setting all properties.

154.function slider1_CreateFcn(hObject, eventdata, handles)

155.

156.% eventdata  reserved - to be defined in a future version of MATLAB

157.

158.% Hint: slider controls usually have a light gray background, change

159.

160.usewhitebg = 1;

161.if usewhitebg

162.

163.else

1.

165.end

166.

167.%--------------------------------------------------------------------------

168.% --- Executes on button press in pushbutton4.

169.function HuiDu_Callback(hObject, eventdata, handles)

170.

171.% eventdata  reserved - to be defined in a future version of MATLAB

172.

173.global G;

174.x=G;

175.x=rgb2gray(x);  %RGB__

176.imshow(x);

177.global G;

178.G=x;

179.

180.

181.%-------------------------------------------------------------------------

182.% --- Executes on button press in JieTu.

183.function JieTu_Callback(hObject, eventdata, handles)

184.

185.% eventdata  reserved - to be defined in a future version of MATLAB

186.

187.global G;

188.x=G;

1.x=imcrop(x);

190.

191.file=[path,name];

192.imwrite(x,file,'jpg');

193.imshow(x);

194.global G;

195.G=x;

196.

197.%-------------------------------------------------------------------------

198.% --- Executes on button press in NearSuoFang.

199.function NearSuoFang_Callback(hObject, eventdata, handles)

200.

201.% eventdata  reserved - to be defined in a future version of MATLAB

202.

203.v=get(handles.slider2NSF,'Visible');

204.if strcmp(v,'on');

205.

206.else strcmp(v,'off');

207.

208.end

209.set(handles.slider2NSF,'Visible',v);

210.set(handles.text2,'Visible',v);

211.

212.

213.%----------------------------------------------------------------------

214.% --- Executes on slider movement.

215.function slider2NSF_Callback(hObject, eventdata, handles)

216.

217.% eventdata  reserved - to be defined in a future version of MATLAB

218.

219.% Hints: get(hObject,'Value') returns position of slider

220.

221.v=get(handles.slider2NSF,'Value');

222.if v>=1

223.

224.end

225.str=sprintf('%.2f',v);

226.set(handles.text2,'String',str);

227.x=handles.img;

228.x=imresize(x,v,'nearest');  %

229.imshow(x);

230.global G;

231.G=x;

232.

233.

234.% --- Executes during object creation, after setting all properties.

235.function slider2NSF_CreateFcn(hObject, eventdata, handles)

236.

237.% eventdata  reserved - to be defined in a future version of MATLAB

238.

239.% Hint: slider controls usually have a light gray background, change

240.

241.usewhitebg = 1;

242.if usewhitebg

243.

244.else

245.

246.end

247.

248.

249.%------------------------------------------------------------------------

250.% --- Executes on button press in DoubleSuoFang.

251.function DoubleSuoFang_Callback(hObject, eventdata, handles)

252.

253.% eventdata  reserved - to be defined in a future version of MATLAB

254.

255.v=get(handles.slider3DSF,'Visible');

256.if strcmp(v,'on');

257.

258.else strcmp(v,'off');

259.

260.end

261.set(handles.slider3DSF,'Visible',v);

262.set(handles.text3,'Visible',v);

263.

2.%--------------------------------------------------------------------------

265.% --- Executes on slider movement.

266.function slider3DSF_Callback(hObject, eventdata, handles)

267.

268.% eventdata  reserved - to be defined in a future version of MATLAB

269.

270.% Hints: get(hObject,'Value') returns position of slider

271.

272.v=get(handles.slider3DSF,'Value');

273.if v>=1

274.

275.end

276.str=sprintf('%.2f',v);

277.set(handles.text3,'String',str);

278.x=handles.img;

279.x=imresize(x,v,'bilinear');  %

280.imshow(x);

281.global G;

282.G=x;

283.

284.

285.% --- Executes during object creation, after setting all properties.

286.function slider3DSF_CreateFcn(hObject, eventdata, handles)

287.

288.% eventdata  reserved - to be defined in a future version of MATLAB

2.

290.

291.% Hint: slider controls usually have a light gray background, change

292.

293.usewhitebg = 1;

294.if usewhitebg

295.

296.else

297.

298.end

299.

300.%------------------------------------------------------------------------

301.% --- Executes on button press in ZhiFangTu.

302.function ZhiFangTu_Callback(hObject, eventdata, handles)

303.

304.% eventdata  reserved - to be defined in a future version of MATLAB

305.

306.x=handles.img;

307.x=imhist(handles.img(:,:));

308.x1=x(1:10:256);

309.horz=1:10:256;

310.B=bar(horz,x1);

311.set(handles.axes1,'XTick',0:50:255);

312.

313.

314.

315.%------------------------------------------------------------------------

316.% --- Executes on button press in JunHeng.

317.function JunHeng_Callback(hObject, eventdata, handles)

318.

319.% eventdata  reserved - to be defined in a future version of MATLAB

320.

321.x=handles.img;

322.x=rgb2gray(x);

323.h=histeq(x(:,:));

324.imshow(h);

325.global G;

326.G=h;

327.

328.

329.%-----------------------------------------------------------------------

330.% --- Executes on button press in Gaussian.

331.function Gaussian_Callback(hObject, eventdata, handles)

332.

333.% eventdata  reserved - to be defined in a future version of MATLAB

334.

335.global G;

336.x=G;

337.y=imnoise(x,'gaussian',0,0.05);

338.imshow(y);

339.global G;

340.G=y;

341.

342.

343.%------------------------------------------------------------------------

344.% --- Executes on button press in JiaoYan.

345.function JiaoYan_Callback(hObject, eventdata, handles)

346.

347.% eventdata  reserved - to be defined in a future version of MATLAB

348.

349.global G;

350.x=G;

351.y=imnoise(x,'salt & pepper',0.08);

352.imshow(y);

353.global G;

354.G=y;

355.

356.

357.%------------------------------------------------------------------------

358.% --- Executes on button press in Medfilt.

359.function Medfilt_Callback(hObject, eventdata, handles)

360.

361.% eventdata  reserved - to be defined in a future version of MATLAB

362.

363.global G;

3.x=G;

365.for i=1:3

366.z(:,:,i)=medfilt2(x(:,:,i),[5 5],'symmetric');

367.end

368.imshow(z);

369.global G;

370.G=z;

371.

372.

373.

374.%--------------------------------------------------------------------------

375.% --- Executes on button press in Wiener.

376.function Wiener_Callback(hObject, eventdata, handles)

377.

378.% eventdata  reserved - to be defined in a future version of MATLAB

379.

380.global G;

381.x=G;

382.for i=1:3

383.z(:,:,i)=wiener2(x(:,:,i),[3 3]);

384.end 

385.imshow(z);

386.global G;

387.G=z;

388.

3.

文档

《MATLAB应用》综合实验

《MATLAB应用》课程设计一、课程设计的目的综合运用MATLAB工具箱实现图像处理的GUI程序设计。二、课程设计的基本要求1)熟悉和掌握MATLAB程序设计方法2)掌握MATLABGUI程序设计3)熟悉MATLAB图像处理工具箱4)学会运用MATLAB工具箱对图像进行处理和分析三、课程设计的内容要求利用MATLABGUI设计实现图像处理的图形用户界面,利用MATLAB图像处理工具箱实现以下的图像处理功能:双击打开MATLAB7.0——File——New——GUI——单击axes1按钮——调整
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top