• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Matlab中图像处理实例:灰度变换,空域滤波,频域滤波,傅里叶变换的实现 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

http://blog.sciencenet.cn/blog-95484-803140.html

% %图像灰度变换

% f = imread(\'E:\2013第一学期课程\媒体计算\实验一\Img\Fig0303(a)(breast).tif\');
% g1 = imadjust(f, [0 1], [1 0]);
% g2 = imadjust(f, [0.5 0.75], [0 1]); 
% g3 = imadjust(f,[],[],2);
% subplot(2,2,1), imshow(f), title(\'原始图像\');
% subplot(2,2,2), imshow(g1), title(\'负片图像\');
% subplot(2,2,3), imshow(g2), title(\'亮度扩展图像\');
% subplot(2,2,4), imshow(g3), title(\'gama=2 图像\');

% f1 = imread(\'E:\2013第一学期课程\媒体计算\实验一\Img\Fig0308(a)(pollen).tif\');
% figure,imshow(f1);
% figure,imhist(f1)
% ylim(\'auto\')
% f1g1 = histeq (f1, 256);
% figure,imshow(f1g1)
% figure,imhist(f1g1)
% ylim(\'auto\')


%图像空域滤波
close all;
f = imread(\'E:\2013第一学期课程\媒体计算\实验一\Img\Fig0318(a)(ckt-board-orig).tif\');
subplot(2,2,1), imshow(f), title(\'原始图像\');
g = imnoise(f,\'salt & pepper\',0.2);
subplot(2,2,2), imshow(g), title(\'噪声图像\');
w = [1/9 1/9 1/9; 1/9 1/9 1/9; 1/9 1/9 1/9]
% w = [0.25 0.25; 0.25 0.25]
% g1 = imfilter(f,w, \'replicate\')
% subplot(2,2,3), imshow(g1), title(\'原始图像均值滤波\');
g2 = imfilter(g,w, \'replicate\')
subplot(2,2,3), imshow(g2), title(\'均值滤波\');


%medfilt2
g3 = medfilt2(g);
subplot(2,2,4), imshow(g3), title(\'中值滤波\');




 


%fspecial
% f = imread(\'E:\2013第一学期课程\媒体计算\实验一\Img\Fig0316(a)(moon).tif\');
% w1 = fspecial(\'prewitt\')
% g1 = f- imfilter(f,w1, \'replicate\')

% w2 = fspecial(\'sobel\')
% g2 = f-imfilter(f,w2, \'replicate\')

% w3 = fspecial(\'laplacian\',0)
% g3 = f-imfilter(f,w3, \'replicate\')

% subplot(2,2,1), imshow(f), title(\'原始图像\');
% subplot(2,2,2), imshow(g1), title(\'prewitt\');
% subplot(2,2,3), imshow(g2), title(\'sobel\');
% subplot(2,2,4), imshow(g3), title(\'laplacian\');

%傅里叶变换 
% f = imread(\'E:\2013第一学期课程\媒体计算\实验一\Img\Fig0315(a)(original_test_pattern).tif\');
% F=fft2(f);  %对图像f进行傅里叶变换,得到的图像大小为P*Q
% s = abs(F);
% Fc=fftshift(F);    %将变换原点移到频率矩形的中心
% S=log(1+abs(Fc));   %对频谱图进行对数变换,以便更好显示频谱
% g=real(ifft2(F));  %对傅里叶频谱进行逆变换,显示效果

% subplot(2,2,1), imshow(s,[]), title(\'傅里叶变换后图像\');
% subplot(2,2,2), imshow(abs(Fc),[]), title(\'将变换原点移到频率矩形的中心\');
% subplot(2,2,3), imshow(S,[]), title(\'频谱图进行对数变换\');
% subplot(2,2,4), imshow(g), title(\'傅里叶频谱进行逆变换图像\');
% figure,imshow(f);


%图像频域滤波
%  f = imread(\'E:\2013第一学期课程\媒体计算\实验一\Img\Fig0515(a)(base-with-control-points).tif\');
%  [m,n] = size(f);
%  F = fft2(f);
%  sig = 10;
%  H = lpfilter(\'gaussian\',m, n, sig);
%  G = H.*F;
%  g1 = real(ifft2(G));
%  %空域高斯滤波
%  w = fspecial(\'gaussian\',500,10)
%  g2 =imfilter(f,w, \'replicate\')
%  
%  subplot(1,3,1), imshow(f,[]), title(\'原始图像\');
%  subplot(1,3,2), imshow(g1,[]), title(\'频域高斯滤波\');
%  subplot(1,3,3), imshow(g2,[]), title(\'空域高斯滤波\');

 

conv2、filter2、imfilter的区别

http://www.ilovematlab.cn/thread-293710-1-1.html

今天见到了坛主math以及论坛其他牛人的真容,听完报告感慨良多,一句话加油吧。

-------------------------------------conv2函数----------------------------------------
1、用法

  1. C=conv2(A,B,shape);        %卷积滤波
复制代码

A:输入图像,B:卷积核
       假设输入图像A大小为ma x na,卷积核B大小为mb x nb,则
       当shape=full    时,返回全部二维卷积结果,即返回C的大小为(ma+mb-1)x(na+nb-1)
          shape=same 时,返回与A同样大小的卷积中心部分
          shape=valid  时,不考虑边界补零,即只要有边界补出的零参与运算的都舍去,返回C的大小为(ma-mb+1)x(na-nb+1)


2、实现步骤
    假设输入图像A大小为ma x na,卷积核大小为mb x nb,则MATLAB的 conv2 函数实现流程如下:
        a、对输入图像补零,第一行之前和最后一行之后都补mb-1行,第一列之前和最后一列之后都补nb-1列(注意:conv2不支持其他的边界补充选项,函数内部对输入总是补零)。
        b、关于卷积核的中心,旋转卷积核180度。
        c、滑动卷积核,将卷积核的中心位于图像矩阵的每一个元素。
        d、将旋转后的卷积核乘以对应的矩阵元素再求和。

3、实现过程展示
     假设有图像A=[4 3 1 2;0 1 1 3;5 2 0 0], 卷积核B=[1 2 3;0 -1 2;1 1 0]
         a、首先是按照上面的步骤进行补零,如下图外圈红色的为补出的零

        <ignore_js_op>

 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi图片格式判断发布时间:2022-07-18
下一篇:
Delphi基本类型发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap