cml20062036.m
上传用户:gzpack
上传日期:2019-07-25
资源大小:2922k
文件大小:25k
源码类别:

图形图像处理

开发平台:

Matlab

  1. function varargout = cml20062036(varargin)
  2. %CML20062036 M-file for cml20062036.fig
  3. %      CML20062036, by itself, creates a new CML20062036 or raises the existing
  4. %      singleton*.
  5. %
  6. %      H = CML20062036 returns the handle to a new CML20062036 or the handle to
  7. %      the existing singleton*.
  8. %
  9. %      CML20062036('Property','Value',...) creates a new CML20062036 using the
  10. %      given property value pairs. Unrecognized properties are passed via
  11. %      varargin to cml20062036_OpeningFcn.  This calling syntax produces a
  12. %      warning when there is an existing singleton*.
  13. %
  14. %      CML20062036('CALLBACK') and CML20062036('CALLBACK',hObject,...) call the
  15. %      local function named CALLBACK in CML20062036.M with the given input
  16. %      arguments.
  17. %
  18. %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
  19. %      instance to run (singleton)".
  20. %
  21. % See also: GUIDE, GUIDATA, GUIHANDLES
  22. % Edit the above text to modify the response to help cml20062036
  23. % Last Modified by GUIDE v2.5 12-May-2009 12:43:40
  24. % Begin initialization code - DO NOT EDIT
  25. gui_Singleton = 1;
  26. gui_State = struct('gui_Name',       mfilename, ...
  27.                    'gui_Singleton',  gui_Singleton, ...
  28.                    'gui_OpeningFcn', @cml20062036_OpeningFcn, ...
  29.                    'gui_OutputFcn',  @cml20062036_OutputFcn, ...
  30.                    'gui_LayoutFcn',  [], ...
  31.                    'gui_Callback',   []);
  32. if nargin && ischar(varargin{1})
  33.    gui_State.gui_Callback = str2func(varargin{1});
  34. end
  35. if nargout
  36.     [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
  37. else
  38.     gui_mainfcn(gui_State, varargin{:});
  39. end
  40. % End initialization code - DO NOT EDIT
  41. % --- Executes just before cml20062036 is made visible.
  42. function cml20062036_OpeningFcn(hObject, eventdata, handles, varargin)
  43. % This function has no output args, see OutputFcn.
  44. % hObject    handle to figure
  45. % eventdata  reserved - to be defined in a future version of MATLAB
  46. % handles    structure with handles and user data (see GUIDATA)
  47. % varargin   unrecognized PropertyName/PropertyValue pairs from the
  48. %            command line (see VARARGIN)
  49. % Choose default command line output for cml20062036
  50. handles.output = hObject;
  51. % Update handles structure
  52. guidata(hObject, handles);
  53. % UIWAIT makes cml20062036 wait for user response (see UIRESUME)
  54. % uiwait(handles.figure1);
  55. % --- Outputs from this function are returned to the command line.
  56. function varargout = cml20062036_OutputFcn(hObject, eventdata, handles)
  57. % varargout  cell array for returning output args (see VARARGOUT);
  58. % hObject    handle to figure
  59. % eventdata  reserved - to be defined in a future version of MATLAB
  60. % handles    structure with handles and user data (see GUIDATA)
  61. % Get default command line output from handles structure
  62. varargout{1} = handles.output;
  63. % --------------------------------------------------------------------
  64. function Untitled_1_Callback(hObject, eventdata, handles)
  65. % hObject    handle to Untitled_1 (see GCBO)
  66. % eventdata  reserved - to be defined in a future version of MATLAB
  67. % handles    structure with handles and user data (see GUIDATA)
  68. % --------------------------------------------------------------------
  69. function Untitled_2_Callback(hObject, eventdata, handles)
  70. % hObject    handle to Untitled_2 (see GCBO)
  71. % eventdata  reserved - to be defined in a future version of MATLAB
  72. % handles    structure with handles and user data (see GUIDATA)
  73. % --------------------------------------------------------------------
  74. function Untitled_3_Callback(hObject, eventdata, handles)
  75. % hObject    handle to Untitled_3 (see GCBO)
  76. % eventdata  reserved - to be defined in a future version of MATLAB
  77. % handles    structure with handles and user data (see GUIDATA)
  78. % --------------------------------------------------------------------
  79. function Untitled_4_Callback(hObject, eventdata, handles)
  80. % hObject    handle to Untitled_4 (see GCBO)
  81. % eventdata  reserved - to be defined in a future version of MATLAB
  82. % handles    structure with handles and user data (see GUIDATA)
  83. % --------------------------------------------------------------------
  84. function Untitled_5_Callback(hObject, eventdata, handles)
  85. % hObject    handle to Untitled_5 (see GCBO)
  86. % eventdata  reserved - to be defined in a future version of MATLAB
  87. % handles    structure with handles and user data (see GUIDATA)
  88. % --------------------------------------------------------------------
  89. function Untitled_6_Callback(hObject, eventdata, handles)
  90. % hObject    handle to Untitled_6 (see GCBO)
  91. % eventdata  reserved - to be defined in a future version of MATLAB
  92. % handles    structure with handles and user data (see GUIDATA)
  93. % --------------------------------------------------------------------
  94. function Untitled_31_Callback(hObject, eventdata, handles)
  95. % hObject    handle to Untitled_31 (see GCBO)
  96. % eventdata  reserved - to be defined in a future version of MATLAB
  97. % handles    structure with handles and user data (see GUIDATA)
  98. clear
  99. I=imread('cats.tif');
  100. [X,map]=rgb2ind(I,0.1);
  101. nbcol=size(map,1);
  102. colormap(pink(nbcol));
  103. cod_X=wcodemat(X,nbcol);
  104. [ca1,ch1,cv1,cd1]=dwt2(X,'db1');
  105. cod_ca1=wcodemat(ca1,nbcol);
  106. cod_ch1=wcodemat(ch1,nbcol);
  107. cod_cv1=wcodemat(cv1,nbcol);
  108. cod_cd1=wcodemat(cd1,nbcol);
  109. subplot(1,1,1),image([cod_ca1,cod_ch1;cod_cv1,cod_cd1]);title('对cats索引图像的1次小波分解')
  110. % --------------------------------------------------------------------
  111. function Untitled_32_Callback(hObject, eventdata, handles)
  112. % hObject    handle to Untitled_32 (see GCBO)
  113. % eventdata  reserved - to be defined in a future version of MATLAB
  114. % handles    structure with handles and user data (see GUIDATA)
  115. clear
  116. I=imread('cats.tif');
  117. [X,map]=rgb2ind(I,0.1);
  118. nbcol=size(map,1);
  119. colormap(pink(nbcol));
  120. cod_X=wcodemat(X,nbcol);
  121. [ca1,ch1,cv1,cd1]=dwt2(X,'db1');
  122. [ca2,ch2,cv2,cd2]=dwt2(ca1,'db1');
  123. cod_ca2=wcodemat(ca2,nbcol);
  124. cod_ch2=wcodemat(ch2,nbcol);
  125. cod_cv2=wcodemat(cv2,nbcol);
  126. cod_cd2=wcodemat(cd2,nbcol);
  127. subplot(1,1,1),image([cod_ca2,cod_ch2;cod_cv2,cod_cd2])
  128. title('对cats索引图像的2次小波分解')
  129. % --------------------------------------------------------------------
  130. function Untitled_33_Callback(hObject, eventdata, handles)
  131. % hObject    handle to Untitled_33 (see GCBO)
  132. % eventdata  reserved - to be defined in a future version of MATLAB
  133. % handles    structure with handles and user data (see GUIDATA)
  134. clear
  135. I=imread('cats.tif');
  136. [X,map]=rgb2ind(I,0.1);
  137. nbcol=size(map,1);
  138. colormap(pink(nbcol));
  139. cod_X=wcodemat(X,nbcol);
  140. [ca1,ch1,cv1,cd1]=dwt2(X,'db1');
  141. a0=idwt2(ca1,ch1,cv1,cd1,'db1',size(X));
  142. a0=wcodemat(a0,nbcol);
  143. subplot(1,1,1),image(a0)
  144. title('对cats索引图像的第一层重构')
  145. % --------------------------------------------------------------------
  146. function Untitled_34_Callback(hObject, eventdata, handles)
  147. % hObject    handle to Untitled_34 (see GCBO)
  148. % eventdata  reserved - to be defined in a future version of MATLAB
  149. % handles    structure with handles and user data (see GUIDATA)
  150. clear
  151. I=imread('cats.tif');
  152. [X,map]=rgb2ind(I,0.1);
  153. nbcol=size(map,1);
  154. colormap(pink(nbcol));
  155. cod_X=wcodemat(X,nbcol);
  156. [ca1,ch1,cv1,cd1]=dwt2(X,'db1');
  157. [ca2,ch2,cv2,cd2]=dwt2(ca1,'db1');
  158. a0=idwt2(ca2,ch2,cv2,cd2,'db1',size(X));
  159. a0=wcodemat(a0,nbcol);
  160. subplot(1,1,1),image(a0)
  161. title('对cats索引图像的第二层重构')
  162. % --------------------------------------------------------------------
  163. function Untitled_25_Callback(hObject, eventdata, handles)
  164. % hObject    handle to Untitled_25 (see GCBO)
  165. % eventdata  reserved - to be defined in a future version of MATLAB
  166. % handles    structure with handles and user data (see GUIDATA)
  167. I=imread('cats.tif');
  168. V=0.02;
  169. noise1=imnoise(I,'gaussian',0,V);%加高斯噪声
  170. subplot(2,2,1),imshow(noise1);title('加高斯噪声')
  171. noise=0.1*randn(size(I));%加随机噪声
  172. noise2=imadd(I,im2uint8(noise));
  173. subplot(2,2,2),imshow(noise2);title('加随机噪声')
  174. noise3=imnoise(I,'salt & pepper', 0.02);
  175. subplot(2,2,3),imshow(noise3);title('加椒盐噪声')
  176. noise4=imnoise(I,'speckle',0.06);
  177. subplot(2,2,4),imshow(noise4);title('加乘性噪声')
  178. % --------------------------------------------------------------------
  179. function Untitled_26_Callback(hObject, eventdata, handles)
  180. % hObject    handle to Untitled_26 (see GCBO)
  181. % eventdata  reserved - to be defined in a future version of MATLAB
  182. % handles    structure with handles and user data (see GUIDATA)
  183. I=imread('gray.bmp');
  184. I1=imnoise(I,'salt & pepper',0.06);
  185. I2=double(I1)/255;
  186. J2=medfilt2(I2,[3 3]);
  187. subplot(1,2,1),imshow(I1);title('加椒盐噪声后的图像')
  188. subplot(1,2,2),imshow(J2);title('中值滤波后的图像')
  189. % --------------------------------------------------------------------
  190. function Untitled_27_Callback(hObject, eventdata, handles)
  191. % hObject    handle to Untitled_27 (see GCBO)
  192. % eventdata  reserved - to be defined in a future version of MATLAB
  193. % handles    structure with handles and user data (see GUIDATA)
  194. % --------------------------------------------------------------------
  195. function Untitled_28_Callback(hObject, eventdata, handles)
  196. % hObject    handle to Untitled_28 (see GCBO)
  197. % eventdata  reserved - to be defined in a future version of MATLAB
  198. % handles    structure with handles and user data (see GUIDATA)
  199. clc
  200. clear
  201. A=imread('gray.bmp')
  202. I=double(A)/255;
  203. %load woman2
  204. %I=ind2gray(X,map)
  205. noisy=imnoise(I,'gaussian',0.06);
  206. [M N]=size(I);
  207. F=fft2(noisy);
  208. fftshift(F);
  209. Dcut=100;
  210. D0=150;
  211. D1=250;
  212. for u=1:M
  213.     for v=1:N
  214.         D(u,v)=sqrt(u^2+v^2);
  215.         BUTTERH(u,v)=1/(1+(sqrt(2)-1)*(D(u,v)/Dcut)^2);
  216.         EXPOTH(u,v)=exp(log(1/sqrt(2))*(D(u,v)/Dcut)^2);
  217.         if D(u,v)<D0
  218.             TRAPEH(u,v)=1;
  219.         else if D(u,v)<=D1
  220.                 TRAPEH(u,v)=(D(u,v)-D1)/(D0-D1);
  221.             else TRAPEH(u,v)=0;
  222.             end
  223.         end
  224.     end
  225. end
  226. BUTTERG=BUTTERH.*F;
  227. BUTTERfiltered=ifft2(BUTTERG);
  228. EXPOTG=EXPOTH.*F;
  229. EXPOTfiltered=ifft2(EXPOTG);
  230. TRAPEG=TRAPEH.*F;
  231. TRAPEfiltered=ifft2(TRAPEG);
  232. subplot(2,2,1),imshow(noisy);title('加入高斯噪声的cats灰度图像');
  233. subplot(2,2,2),imshow(BUTTERfiltered);title('经过巴特沃斯低通滤波器后的图像');
  234. subplot(2,2,3),imshow(EXPOTfiltered);title('经过指数低通滤波器后的图像');
  235. subplot(2,2,4),imshow(TRAPEfiltered);title('经过梯形低通滤波器后的图像');
  236. % --------------------------------------------------------------------
  237. function Untitled_29_Callback(hObject, eventdata, handles)
  238. % hObject    handle to Untitled_29 (see GCBO)
  239. % eventdata  reserved - to be defined in a future version of MATLAB
  240. % handles    structure with handles and user data (see GUIDATA)
  241. % --------------------------------------------------------------------
  242. function Untitled_30_Callback(hObject, eventdata, handles)
  243. % hObject    handle to Untitled_30 (see GCBO)
  244. % eventdata  reserved - to be defined in a future version of MATLAB
  245. % handles    structure with handles and user data (see GUIDATA)
  246. I=imread('gray.bmp');
  247. subplot(2,2,1),imshow(I);title('原始cats灰度图像');
  248. Ic=imcomplement(I);
  249. BW=im2bw(Ic,graythresh(Ic));
  250. subplot(2,2,2),imshow(BW);title('阈值截取分割后图像');
  251. se=strel('disk',6);
  252. BWc=imclose(BW,se);
  253. BWco=imopen(BWc,se);
  254. subplot(2,2,3),imshow(BWco);title('对小图像进行删除后图像');
  255. mask=BW&BWco;
  256. subplot(2,2,4),imshow(mask);title('检测结果的图像');
  257. % --------------------------------------------------------------------
  258. function Untitled_21_Callback(hObject, eventdata, handles)
  259. % hObject    handle to Untitled_21 (see GCBO)
  260. % eventdata  reserved - to be defined in a future version of MATLAB
  261. % handles    structure with handles and user data (see GUIDATA)
  262. clear
  263. I=imread('cats.tif');
  264. gray=rgb2gray(I);
  265. J=histeq(gray);
  266. subplot(2,2,1),imshow(gray);title('原始cats灰度图像');
  267. subplot(2,2,2),imshow(J);title('直方图均衡化后的cats灰度图像');
  268. subplot(2,2,3),imhist(gray);title('原始cats灰度图像直方图');
  269. subplot(2,2,4),imhist(J);title('直方图均衡化后的cats灰度图像直方图');
  270. % --------------------------------------------------------------------
  271. function Untitled_22_Callback(hObject, eventdata, handles)
  272. % hObject    handle to Untitled_22 (see GCBO)
  273. % eventdata  reserved - to be defined in a future version of MATLAB
  274. % handles    structure with handles and user data (see GUIDATA)
  275. clear
  276. I=imread('cats.tif')
  277. gray=rgb2gray(I);
  278. subplot(1,2,1),imshow(gray)
  279. title('原始cats灰度图像')
  280. background=imopen(gray,strel('disk',15))
  281. I2=imsubtract(gray,background);
  282. subplot(1,2,2),imshow(I2)
  283. title('减去背景后的图像')
  284. % --------------------------------------------------------------------
  285. function Untitled_23_Callback(hObject, eventdata, handles)
  286. % hObject    handle to Untitled_23 (see GCBO)
  287. % eventdata  reserved - to be defined in a future version of MATLAB
  288. % handles    structure with handles and user data (see GUIDATA)
  289. clear
  290. I=imread('cats.tif');
  291. level=graythresh(I);
  292. bw=im2bw(I,level);
  293. subplot(1,2,1),imshow(I);title('原始cats图像');
  294. subplot(1,2,2),imshow(bw);title('阈值化后的cats图像')
  295. % --------------------------------------------------------------------
  296. function Untitled_24_Callback(hObject, eventdata, handles)
  297. % hObject    handle to Untitled_24 (see GCBO)
  298. % eventdata  reserved - to be defined in a future version of MATLAB
  299. % handles    structure with handles and user data (see GUIDATA)
  300. clear
  301. I=imread('cats.tif');
  302. gray=rgb2gray(I);
  303. J=imadjust(gray,[0.3,0.7],[]);
  304. subplot(2,2,1),imshow(gray);title('原始cats灰度图像');
  305. subplot(2,2,2),imshow(J);title('调整对比度后的cats灰度图像');
  306. subplot(2,2,3),imhist(gray);title('原始cats灰度图像直方图');
  307. subplot(2,2,4),imhist(J);title('    调整对比度后的cats灰度图像直方图');
  308. % --------------------------------------------------------------------
  309. function Untitled_15_Callback(hObject, eventdata, handles)
  310. % hObject    handle to Untitled_15 (see GCBO)
  311. % eventdata  reserved - to be defined in a future version of MATLAB
  312. % handles    structure with handles and user data (see GUIDATA)
  313. clear
  314. I=imread('cats.tif');
  315. subplot(1,1,1),imshow(I);title('请用鼠标选择任意几个像素点后按回车以显示所选像素点的数据值!');
  316. vals =impixel
  317. % --------------------------------------------------------------------
  318. function Untitled_16_Callback(hObject, eventdata, handles)
  319. % hObject    handle to Untitled_16 (see GCBO)
  320. % eventdata  reserved - to be defined in a future version of MATLAB
  321. % handles    structure with handles and user data (see GUIDATA)
  322. clear
  323. subplot(1,1,1),imshow cats.tif 
  324. title('请用鼠标选择一线段后按回车以显示轨迹强度图!')
  325. improfile
  326. % --------------------------------------------------------------------
  327. function Untitled_17_Callback(hObject, eventdata, handles)
  328. % hObject    handle to Untitled_17 (see GCBO)
  329. % eventdata  reserved - to be defined in a future version of MATLAB
  330. % handles    structure with handles and user data (see GUIDATA)
  331. clear   
  332. I=imread('gray.bmp');
  333. subplot(1,1,1),imshow(I);title('原始cats灰度图像')
  334. figure(1),
  335. f1=figure(1);
  336. set(f1,'NumberTitle','off','Name','图像轮廓图')   
  337. imcontour(I)       
  338. % --------------------------------------------------------------------
  339. function Untitled_18_Callback(hObject, eventdata, handles)
  340. % hObject    handle to Untitled_18 (see GCBO)
  341. % eventdata  reserved - to be defined in a future version of MATLAB
  342. % handles    structure with handles and user data (see GUIDATA)
  343. clear
  344. I=imread('gray.bmp');
  345. subplot(2,1,1),imshow(I);title('cats灰度图像')
  346. subplot(2,1,2),imhist(I,64);title('cats灰度图像的直方图')
  347.       
  348. % --------------------------------------------------------------------
  349. function Untitled_19_Callback(hObject, eventdata, handles)
  350. % hObject    handle to Untitled_19 (see GCBO)
  351. % eventdata  reserved - to be defined in a future version of MATLAB
  352. % handles    structure with handles and user data (see GUIDATA)
  353. % --------------------------------------------------------------------
  354. function Untitled_10_Callback(hObject, eventdata, handles)
  355. % hObject    handle to Untitled_10 (see GCBO)
  356. % eventdata  reserved - to be defined in a future version of MATLAB
  357. % handles    structure with handles and user data (see GUIDATA)
  358. clear
  359. I=imread('cats.tif'); 
  360. subplot(2,2,1),imshow(I);title('原始图像')
  361. X1=imresize(I,0.1,'nearest');
  362. subplot(2,2,2),imshow(X1,[]);title('最近邻插值法实现图像缩放')
  363. X2=imresize(I,0.1,'bilinear');
  364. subplot(2,2,3),imshow(X2,[]);title('双线性插值法实现图像缩放')
  365. X3=imresize(I,0.1,'bicubic');
  366. subplot(2,2,4),imshow(X3,[]);title('双立方插值法实现图像缩放')
  367. % --------------------------------------------------------------------
  368. function Untitled_11_Callback(hObject, eventdata, handles)
  369. % hObject    handle to Untitled_11 (see GCBO)
  370. % eventdata  reserved - to be defined in a future version of MATLAB
  371. % handles    structure with handles and user data (see GUIDATA)
  372. clear    
  373. I=imread('cats.tif');
  374. J=imrotate(I,35, 'bilinear');
  375. subplot(1,2,1),imshow(I);title('原始图像')
  376. subplot(1,2,2),imshow(J);title('逆时针旋转35°图像')
  377. % --------------------------------------------------------------------
  378. function Untitled_13_Callback(hObject, eventdata, handles)
  379. % hObject    handle to Untitled_13 (see GCBO)
  380. % eventdata  reserved - to be defined in a future version of MATLAB
  381. % handles    structure with handles and user data (see GUIDATA)
  382. clear
  383. I=imread('cats.tif');
  384. %subplot(1,1,1),imshow(I);title('请选择要裁剪的区域,并双击选定区域以显示');
  385. msgbox('请选择要裁剪的区域,并双击选定区域以显示','提示信息');
  386. waitforbuttonpress;
  387. clf;
  388. I2=imcrop(I);
  389. close
  390. subplot(1,2,1),imshow(I);title('原始cats——RGB图像');
  391. subplot(1,2,2),imshow(I2);title('裁剪后的cats——RGB图像');
  392. % --------------------------------------------------------------------
  393. function Untitled_14_Callback(hObject, eventdata, handles)
  394. % hObject    handle to Untitled_14 (see GCBO)
  395. % eventdata  reserved - to be defined in a future version of MATLAB
  396. % handles    structure with handles and user data (see GUIDATA)
  397. clear
  398. I=imread('cats.tif');
  399. transform(I);
  400. I=imread('gray.bmp');
  401. transform(I);
  402. load trees
  403. transform(X,map);
  404. % --------------------------------------------------------------------
  405. function Untitled_7_Callback(hObject, eventdata, handles)
  406. % hObject    handle to Untitled_7 (see GCBO)
  407. % eventdata  reserved - to be defined in a future version of MATLAB
  408. % handles    structure with handles and user data (see GUIDATA)
  409. clear
  410. I=imread('cats.tif');
  411. subplot(1,1,1),imshow(I);title('cats——RGB图像');
  412. % --------------------------------------------------------------------
  413. function Untitled_8_Callback(hObject, eventdata, handles)
  414. % hObject    handle to Untitled_8 (see GCBO)
  415. % eventdata  reserved - to be defined in a future version of MATLAB
  416. % handles    structure with handles and user data (see GUIDATA)
  417. clear
  418. I=imread('cats.tif');
  419. gray=rgb2gray(I);
  420. imwrite(gray,'gray.bmp');
  421. bw=im2bw(I,0.5);
  422. imwrite(bw,'bw.bmp');
  423. [ind,map]=gray2ind(gray,64);
  424. save ind
  425. msgbox('已保存为灰度图像gray.bmp、索引图像ind.mat、二值图像bw.bmp!','提示信息');
  426. % --------------------------------------------------------------------
  427. function Untitled_9_Callback(hObject, eventdata, handles)
  428. % hObject    handle to Untitled_9 (see GCBO)
  429. % eventdata  reserved - to be defined in a future version of MATLAB
  430. % handles    structure with handles and user data (see GUIDATA)
  431. clear
  432. close all
  433. exit(0)
  434. % --------------------------------------------------------------------
  435. function Untitled_35_Callback(hObject, eventdata, handles)
  436. % hObject    handle to Untitled_35 (see GCBO)
  437. % eventdata  reserved - to be defined in a future version of MATLAB
  438. % handles    structure with handles and user data (see GUIDATA)
  439. clear
  440. I=imread('cats.tif');
  441. [x,y,z]=cylinder;
  442. subplot(1,2,1),warp(x,y,z,I);title('圆柱形纹理映射');
  443. [x,y,z]=sphere;
  444.  subplot(1,2,2),warp(x,y,z,I);title('球形纹理映射');
  445. % --------------------------------------------------------------------
  446. function Untitled_36_Callback(hObject, eventdata, handles)
  447. % hObject    handle to Untitled_36 (see GCBO)
  448. % eventdata  reserved - to be defined in a future version of MATLAB
  449. % handles    structure with handles and user data (see GUIDATA)
  450. clear
  451. I=imread('cats.tif');
  452. gray=rgb2gray(I);
  453. J=histeq(gray,32);
  454. [counts,x]=imhist(J);
  455. I=imread('cats.tif');
  456. Q=rgb2gray(I);
  457. subplot(2,2,1),imshow(Q);title('原始cats灰度图像');
  458. subplot(2,2,3),imhist(Q);title('原始cats灰度图像的直方图');
  459. M=histeq(Q,counts);
  460. subplot(2,2,2),imshow(M);title('直方图规定化后的cats灰度图像');
  461. subplot(2,2,4),imhist(M);title('直方图均衡化成32个灰度级后的cats灰度图像直方图');
  462. axis square
  463. % --------------------------------------------------------------------
  464. function Untitled_37_Callback(hObject, eventdata, handles)
  465. % hObject    handle to Untitled_37 (see GCBO)
  466. % eventdata  reserved - to be defined in a future version of MATLAB
  467. % handles    structure with handles and user data (see GUIDATA)
  468. % --------------------------------------------------------------------
  469. function Untitled_40_Callback(hObject, eventdata, handles)
  470. % hObject    handle to Untitled_40 (see GCBO)
  471. % eventdata  reserved - to be defined in a future version of MATLAB
  472. % handles    structure with handles and user data (see GUIDATA)
  473. % --------------------------------------------------------------------
  474. function Untitled_41_Callback(hObject, eventdata, handles)
  475. % hObject    handle to Untitled_41 (see GCBO)
  476. % eventdata  reserved - to be defined in a future version of MATLAB
  477. % handles    structure with handles and user data (see GUIDATA)
  478. clear
  479. I=imread('gray.bmp');
  480. BW1=edge(I,'sobel');
  481. BW2=edge(I,'canny');
  482. BW3=edge(I,'prewitt');
  483. BW4=edge(I,'log');
  484. subplot(3,2,1),imshow(I);title('原始cats灰度图像');
  485. subplot(3,2,3),imshow(BW1);title('Sobel边缘检测');
  486. subplot(3,2,4),imshow(BW2);title('Canny边缘检测');
  487. subplot(3,2,5),imshow(BW2);title('prewitt边缘检测');
  488. subplot(3,2,6),imshow(BW2);title('log边缘检测');
  489. % --------------------------------------------------------------------
  490. function Untitled_42_Callback(hObject, eventdata, handles)
  491. % hObject    handle to Untitled_42 (see GCBO)
  492. % eventdata  reserved - to be defined in a future version of MATLAB
  493. % handles    structure with handles and user data (see GUIDATA)
  494. clear
  495. [I,map]=imread('gray.bmp');
  496. subplot(3,2,1),imshow(I,map);title('用梯度法实现图像锐化');
  497. I=double(I);
  498. [IX,IY]=gradient(I);
  499. GM=sqrt(IX.*IX+IY.*IY);
  500. OUT1=GM;
  501. subplot(3,2,2),imshow(OUT1,map);
  502. OUT2=I;
  503. J=find(GM>=10);
  504. OUT2(J)=GM(J);
  505. subplot(3,2,3),imshow(OUT2,map);
  506. OUT3=I;
  507. J=find(GM>=10);
  508. OUT3(J)=255;
  509. subplot(3,2,4),imshow(OUT3,map);
  510. OUT4=I;
  511. J=find(GM<=10);
  512. OUT4(J)=255;
  513. subplot(3,2,5),imshow(OUT4,map);
  514. OUT5=I;
  515. J=find(GM>=10);
  516. OUT5(J)=255;
  517. Q=find(GM<10);
  518. OUT5(Q)=0;
  519. subplot(3,2,6),imshow(OUT5,map);
  520. % --------------------------------------------------------------------
  521. function Untitled_39_Callback(hObject, eventdata, handles)
  522. % hObject    handle to Untitled_39 (see GCBO)
  523. % eventdata  reserved - to be defined in a future version of MATLAB
  524. % handles    structure with handles and user data (see GUIDATA)
  525. %对随机噪声用deconvwnr函数复原
  526. I=imread('cats.tif');
  527. LEN=31;
  528. THETA=11;
  529. PSF=fspecial('motion',LEN,THETA);
  530. Blurred=imfilter(I,PSF,'circular','conv');
  531. %wnr1=deconvwnr(Blurred,PSF);
  532. noise2=0.1*randn(size(I));%加随机噪声
  533. noise3=imadd(I,im2uint8(noise2));
  534. subplot(1,2,1),imshow(noise3);title('加随机噪声');
  535. wnr2=deconvwnr(Blurred,PSF);
  536. subplot(1,2,2),imshow(wnr2);title('用deconvwnr函数复原');
  537. % --------------------------------------------------------------------
  538. function Untitled_44_Callback(hObject, eventdata, handles)
  539. % hObject    handle to Untitled_44 (see GCBO)
  540. % eventdata  reserved - to be defined in a future version of MATLAB
  541. % handles    structure with handles and user data (see GUIDATA)
  542. clear
  543. I=imread('gray.bmp');
  544. H=fspecial('sobel');
  545. subplot(1,2,1),imshow(I);title('原始cats灰度图像');
  546. J=filter2(H,I);
  547. subplot(1,2,2),imshow(J);title('Sobel算子对图像锐化结果');
  548. % --------------------------------------------------------------------
  549. function Untitled_45_Callback(hObject, eventdata, handles)
  550. % hObject    handle to Untitled_45 (see GCBO)
  551. % eventdata  reserved - to be defined in a future version of MATLAB
  552. % handles    structure with handles and user data (see GUIDATA)
  553. clear
  554. I=imread('gray.bmp');
  555. I=double(I);
  556. subplot(1,2,1),imshow(I,[]);title('原始cats灰度图像');
  557. h=[0 1 0,1 -4 1,0 1 0];
  558. J=conv2(I,h,'same');
  559. K=I-J;
  560. subplot(1,2,2),imshow(K,[]);title('拉氏算子对模糊图像进行增强')
  561. % --------------------------------------------------------------------
  562. function Untitled_46_Callback(hObject, eventdata, handles)
  563. % hObject    handle to Untitled_46 (see GCBO)
  564. % eventdata  reserved - to be defined in a future version of MATLAB
  565. % handles    structure with handles and user data (see GUIDATA)
  566. clear
  567. I=imread('gray.bmp');
  568. J=im2double(I);
  569. subplot(2,2,1),imshow(J,[]);title('原始cats灰度图像');
  570. h2=[-1 -1 -1,-1 9 -1,-1 -1 -1];
  571. h3=[1 -2 1,-2 5 -2,1 -2 1];
  572. h4=1/7.*[-1 -2 -1, -2 19 -2,-1 -2 -1];
  573. A=conv2(J,h2,'same');
  574. subplot(2,2,2),imshow(A,[]);title('H2算子滤波结果');
  575. B=conv2(J,h3,'same');
  576. subplot(2,2,3),imshow(B,[]);title('H3算子滤波结果');
  577. C=conv2(J,h4,'same');
  578. subplot(2,2,4),imshow(C,[]);title('H4算子滤波结果');
  579. % --------------------------------------------------------------------
  580. function Untitled_47_Callback(hObject, eventdata, handles)
  581. % hObject    handle to Untitled_47 (see GCBO)
  582. % eventdata  reserved - to be defined in a future version of MATLAB
  583. % handles    structure with handles and user data (see GUIDATA)
  584. [I,map]=imread('gray.bmp');
  585. noisy=imnoise(I,'gaussian',0.01);
  586. [M N]=size(I);
  587. F=fft2(noisy);
  588. fftshift(F);
  589. Dcut=100;
  590. D0=250;
  591. D1=150;
  592. for u=1:M
  593.     for v=1:N
  594.         D(u,v)=sqrt(u^2+v^2);
  595.         BUTTERH(u,v)=1/(1+(sqrt(2)-1)*(Dcut/D(u,v))^2);
  596.         EXPOTH(u,v)=exp(log(1/sqrt(2))*(Dcut/D(u,v))^2);
  597.         if D(u,v)<D1
  598.             THPFH(u,v)=0;
  599.         else if D(u,v)<=D0
  600.                 THPFH(u,v)=(D(u,v)-D1)/(D0-D1);
  601.             else THPFH(u,v)=1;
  602.             end
  603.         end
  604.     end
  605. end
  606.     BUTTERG=BUTTERH.*F;
  607.     BUTTERfiltered=ifft2(BUTTERG);
  608.     EXPOTG=EXPOTH.*F;
  609.     EXPOTfiltered=ifft2(EXPOTG);
  610.     THPFG=THPFH.*F;
  611.     THPFfiltered=ifft(THPFG);
  612.     subplot(2,2,1),imshow(noisy);title('加入高斯噪声的cats灰度图像');
  613.     subplot(2,2,2),imshow(BUTTERfiltered);title('经过巴特沃斯高通滤波器后的图像');
  614.     subplot(2,2,3),imshow(EXPOTfiltered);title('经过指数高通滤波器后的图像');
  615.     subplot(2,2,4),imshow(THPFfiltered);title('经过梯形高通滤波器后的图像');