用matlab频域低通滤波,频域高通滤波处理彩色图像的程序

用matlab频域低通滤波,频域高通滤波处理彩色图像的程序,第1张

程序如下:

clearall;

clc;

I=imread('up4-Amppng');

OutImg=I;

R=I(:,:,1);

G=I(:,:,2);

B=I(:,:,3);

R=medfilt2(R,[3,3]);

G=medfilt2(G,[3,3]);

B=medfilt2(B,[3,3]);

I1=cat(3,R,G,B); %对彩色图像R,G,B三个通道分别进行3×3模板的中值滤波cat函数用于连接两个矩阵或数组

R=filter2(fspecial('average',3),R)/255;

G=filter2(fspecial('average',3),G)/255;

B=filter2(fspecial('average',3),B)/255;

I2=cat(3,R,G,B); %对彩色图像R,G,B三个通道分别进行3×3模板的均值滤波

figure,imshow(I);

title('原图')

figure,

imshow(I1);

title('中值滤波')

figure,imshow(I2);

title('均值滤波')

扩展资料:

注意事项

1、在频域滤波,由于是点乘,所以滤波模板矩阵和图像矩阵必须尺寸一样。

2、因为尺寸一样,它们的原点必须要对齐。

3、因在进行离散傅里叶变换后,在频域点乘,相当于在时域卷积,但是这个时候实际上是对时域周期矩阵进行卷积。直接在时域卷积,matlab默认是在边界补0。

4、Matlabfreqz2()这个函数可以自动得到一个指定尺寸的,对应于时域的频域模板。

5、图像经过傅里叶变换后,它的原点在左上角。而模板经过freqz2后,原点在中心,所以只要平移其中的一个就好了。

6、在对原图像进行傅里叶变换之前,按照一定规则补0就好了。

I=imread('ricepng');    %读取米的到I

backgroud=imopen(I,strel('disk',16));    %把开元素的构造元素(Structuring element)指定形状圆盘,大小16。到background

imshow(backgroud);      %显示background

figure,surf(double(backgroud(1:8:end,1:8:end))),zlim([0 256]);      %控制图窗窗口,创建曲面对象,类型是double,用indexing syntax只查看每个方向上8个像素中的一个,设置z轴的范围0到256

set(gca,'Ydir','reverse');      %gca当前的坐标区或轴,设置沿y轴反转值

官方文档中心都可以搜到网页链接

1、首先打开MATLAB软件。

2、会出现如下窗口,这是MATLAB主要一般常用的编辑窗口。

3、输入 i=imread('引用的地址');,如 i=imread('d:\Uool\agif');。注意要有单引号,地址要确实可用,句子为了方便继续编辑可以加;

4、继续输入imshow(名称);,如imshow(i);。名称一般是前面复制好的,上一步就是把图像赋值给一个变量。

5、回车后会d出窗口显示,这样就完成了。

sizewidth>0 && sizeheight>0 in function imshow 这个一般来说是读取失败造成的,读取失败后,生成的Mat矩阵大小为0

cv::是命名空间,如果程序头部添上using namespace cv;那么imread和cv::imread就一样了。

函数imread用于读取文件中的数据。在matlab的命令窗口中输入doc imread或者help imread即可获得该函数的帮助信息。

调用格式

A = imread(filename,fmt)

[X,map] = imread(filename,fmt)

[] = imread(filename)

[] = imread(URL,)

[] = imread(,idx) (CUR, GIF, ICO, and TIFF only)

[] = imread(,'PixelRegion',{ROWS, COLS}) (TIFF only)

[] = imread(,'frames',idx) (GIF only)

[] = imread(,ref) (HDF only)

[] = imread(,'BackgroundColor',BG) (PNG only)

[A,map,alpha] = imread() (ICO, CUR, and PNG only

scilab图像和视频处理工具箱SIVP

About SIVP

------------

SIVP stands for Scilab Image and Video Processing toolbox SIVP intends to do image processing and video processing tasks SIVP is meant to be a useful, efficient, and free image and video processing toolbox for Scilab

SIVP homepage: >

这段程序主要进行图像处理。

首先转化为灰度图像,画出灰度值分布的直方图。

之后利用sobel算子提取边缘。

之后进行图像腐蚀运算,腐蚀过程中用到的是1;1;1结构,这个结构会腐蚀掉竖着的一些内容不会腐蚀横着的内容。

例如,一个33的矩阵

1,1,1

1,1,1

1,1,1

经过这个算子复试后就会变成

0,0,0

1,1,1

0,0,0

这就保护了被处理图像水平方向的信息。

之后利用矩形5050 进行连接。

最后一个函数bwareaopen是将那些不闭合的区域删掉。

比如字母i,t之类不闭合就会被删掉

o,a闭合就会被保留。

最后就会生成比较完整的边界信息。

以上就是关于用matlab频域低通滤波,频域高通滤波处理彩色图像的程序全部的内容,包括:用matlab频域低通滤波,频域高通滤波处理彩色图像的程序、matlab问题:能解释下面一段程序中的第2句中的imopen(I,strel('disk',16)); 以及程序中的最后两句吗、怎么将图片导入matlab中让图片出现在程序中如果要存入matlab路径,该存入哪个路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10078824.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存