matlab图像处理课程设计
① 用matlab做一个图像处理系统
图片内容如下:
全球我
%对话框来打开文件
镜像文件,路径名] = uigetfile('*。TIF“);
如果镜像文件= 0
文件名[路径名的镜像文件;
[X,地图] = imread(文件名);
I = X;
show_Callback(hObject,EVENTDATA,处理)
集
结束(handles.save,“启用”,“”);
图像保存:
全局I
[镜像文件路径名filterindex] = uiputfile( {'*。TIF“,”TIF“,”*。*','文件'},“图片另存为”);
(镜像文件?= 0&filterindex == 1)
文件名= [路径名镜像文件。 TIF'];
imwrite(I,文件名);
其他(镜像文件?= 0)
文件名= [路径名的镜像文件];
imwrite(I,文件名); />结束;
频域增强:
全球我
J = imnoise(I,'椒盐',0.02);
%的基tuxiang田家燕郊早生
>插曲(121),imshow(J)
标题(“汉你早生的元tuxiang)
J =双(J);
F = FFT2(J) G = fftshift(F);
[M,N] =大小(F);
n = 3时,D0 = 20;
N1 =楼(M / 2); N2 =地板(N / 2);
为I = 1:M
对于j = 1:N
D = SQRT((I-N1)^ 2 +(J-N2)^ 2 );
?= 1 /(0.414 *(D/D0)^(2 * N));
G(I,J)= H * G(I,J); ...... / a>
结束
G = ifftshift(G);
G = UINT8(真实(ifft2(G)));
插曲(122),imshow(G) BR />标题(“三姐北海铝泊tuxiang)
FFT变换:
%读入原始图像
插曲(1,2,1);
imshow( I)
标题元(TU);
%,离散傅立叶频谱
J = fftshift(FFT??2(I));
插曲(1,2,2)
imshow(日志(ABS(J)),[8,10])
标题(FFT);
② MATLAB图像处理程序~
这是函数m文件,不能直接运行的,你的先给出f,m,n,rx,rc,然后调用这个函数m文件啊
③ 学习matlab图像处理
Matlab 是一款功能强大的应用软件,由于你基础知识还未掌握,所以图像处理方面就很版难理解!
建议,先权到图书馆借一些Matlab基础的相关书籍,等基本操作和编程的语法掌握之后再去研读图像处理方面的书
记得我刚学matlab时也很迷茫,但是只要坚持练习,操作,尝试,总会出成果的
只有基础打牢固了,在学习深入的技巧就很容易了
还有,如果你需要MATLAB图像处理翻译版的优秀教材PDF,在我的网络Hi 或者留言板留下你的邮箱,我发一份给你
Good Luck ~~
④ MATLAB图像处理步骤
数字图像的边界提取:
I=imread('bonemarr.tif');
[BW1,th1]=edge(I,'sobel',0.07);
th1str=num2str(th1)
imshow(I);
title('图1:bonemarr.tif原图','fontsize',14,'position',[128,260,0]);
figure;imshow(BW1);
ti='图8: sobel算子提取的边界,阈值为';
ti=strcat(ti,th1str)
title(ti,'fontsize',12,'position',[128,260,0])
图像压缩:
clear
I=imread('blood1.tif');
I=im2double(I);
T=dctmtx(8);
B=blkproc(I,[8 8],'P1*x*P2',T,T);
mask[1,1,1,1,0,0,0,0;1,1,1,0,0,0,0,0;1,1,0,0,0,0,0,0;1,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0;]
B2=(blkproc(B,[8 8],'P1.*x',mask);
I2=blkproc(I,[8 8],'P1*x*P2',T,T);
subplot(1,2,1);
imshow(I);title('原图');
subplot(1,2,2);
imshow(I2);title('解压缩图');
⑤ 图像处理matlab的课程设计 题目是空域和频域滤波
%1. 对图像lena.bmp叠加高斯噪声,椒盐噪声,乘性噪声,噪声方差为0.02,然后分别利用邻域平均法和中值滤波法对该图像进行滤波,显示滤波后的图像。
%要求窗口尺寸(先用3×3,再用5×5逐渐增大)可变,窗口类型(线性,十字形,方形)可选)
%领域平均法和中值滤波法是空间域的滤波的方法
clear all;
I=imread('lena.bmp');
J1=imnoise(I,'gaussian',0,0.02); %高斯噪声 均值0 方差为0.02
J2=imnoise(I,'salt & pepper',0.02); %椒盐噪声 均值0 方差为0.02
J3=imnoise(I,'speckle',0.02); %乘性噪声 均值0 方差为0.02
subplot(2,2,1),imshow(I),title('原始图像');
subplot(2,2,2),imshow(J1),title('高斯噪声');
subplot(2,2,3),imshow(J2),title('椒盐噪声');
subplot(2,2,4),imshow(J3),title('乘性噪声');
%中值滤波法
figure(2)
K1=medfilt2(J1,[3,3]); %3*3的滤波窗
subplot(3,2,1),imshow(K1,[]),title('对3*3加高斯噪声图像中值滤波');
K2=medfilt2(J1,[5,5]); %5*5的滤波窗口
subplot(3,2,2),imshow(K2,[]),title('对5*5加高斯噪声图像中值滤波');
K2=medfilt2(J2,[3,3]); %3*3的滤波窗
subplot(3,2,3),imshow(K2,[]),title('对3*3加椒盐噪声图像中值滤波');
K2=medfilt2(J2,[5,5]); %5*5的滤波窗口
subplot(3,2,4),imshow(K2,[]),title('对5*5加椒盐噪声图像中值滤波');
K3=medfilt2(J3,[3,3]); %3*3的滤波窗
subplot(3,2,5),imshow(K3,[]),title('对3*3加乘性噪声图像中值滤波');
K2=medfilt2(J3,[5,5]); %5*5的滤波窗口
subplot(3,2,6),imshow(K3,[]),title('对5*5加乘性噪声图像中值滤波');
%领域平均法
figure(3)
L1=filter2(fspecial('average',3),J1);% 3*3模板平滑均值滤波
L2=filter2(fspecial('average',5),J1);%5×5模板平滑均值滤波
subplot(3,2,1),imshow(L1,[]),title('对3*3加高斯噪声图像平滑滤波');
subplot(3,2,2),imshow(L2,[]),title('对5*5加高斯噪声图像平滑滤波');
L3=filter2(fspecial('average',3),J2);% 3*3模板平滑均值滤波
L4=filter2(fspecial('average',5),J2);%5×5模板平滑均值滤波
subplot(3,2,3),imshow(L3,[]),title('对3*3加椒盐噪声图像平滑滤波');
subplot(3,2,4),imshow(L4,[]),title('对5*5加椒盐噪声图像平滑滤波');
L5=filter2(fspecial('average',3),J3);% 3*3模板平滑均值滤波
L6=filter2(fspecial('average',5),J3);%5×5模板平滑均值滤波
subplot(3,2,5),imshow(L5,[]),title('对3*3加乘性噪声图像平滑滤波');
subplot(3,2,6),imshow(L6,[]),title('对5*5加乘性噪声图像平滑滤波');
%领域平均法是指用某点领域的灰度值平均值来代替该点的灰度值,算法简单,处理速度快,但是在衰减噪声的同时也会使图像产生模糊。
%中值滤波法对椒盐噪声的抑制很好,但是不太适合点,线,尖顶等细节较多的图像
⑥ matlab图像处理基本步骤
看是什么图了 无图无真相
反正就是预处理 最终要把圆和矩形分割出来 简单是话 直接size(bw)获取行 高
看样子貌似是图像长度测量的课题
⑦ matlab图像处理的编程
同学既然你已经把算法描述出来了,其实你离写出程序就不远了。为什么不自己尝试一下呢?如果有苦难的话,可以话流程图来辅助。这里我给你一个示例,但是希望你以后自己动手。
[xlim ylim]=size(I);%I是你的灰度图像
red=[];
for i=1:xlim
left=0;
right=0;
for j=1:ylim
if I(i,j)==255&&I(i,j+1)~=255
left=j
end
if j<ylim&&I(i,j)~=255&&I(i,j+1)==255%你对右边缘点没有定义,我自己理解为改点不是255且右边的像素是255.
right=j;
end
if I(i,j)==255&&I(i,j+1)==255
break;
end
end
red(i)=right-left;
end
最后red这个向量里面存的是每一行的左右边缘间距。如果那些没有边缘的,则会得到0。我是按照你的逻辑来写的。但是我感觉你的流程是有问题的。如果你的图片与你的逻辑不是很符合的话,应该是出不来结果的。我也是盲编,可能有错误。你在调试的过程中自己把握吧。
图像处理需要自己动手,我还是建议你修改一下你的编程逻辑,然后自己动手编写程序。如果有问题,可以私信我。我愿意跟你交流。
⑧ 基于MATLAB的数字图像处理
图片中有多少米,这个统计很简单,但是图片中统计汽车就难了。
MATLAB与Vc++程序实例的书好像都有数米粒的例子,你找找吧。
我给你个数米粒个数的程序吧:
i=imread('rice.tif');
i1=rgb2gray(i);%灰度化
bw=im2bw(i1);%二值化
[labeled number]=bwlabel(bw,8);%八邻域个体数付给number,labeled里是结构
应该就有结果了number=80;
⑨ matlab数字图像处理系统如何编写
具体得参照MATLAB的函数,找一本想关Matlab图像处理的书,里面都有介绍的。A=imread('D:\IMG\girl.bmp');%bmp文件的读内取,括号里面容是图片路径
imwrite(A,'D:\IMG\girl.bmp');
imshow(A);
subplot(1,3,1),imshow(A),title('原图像');imfinfo('D:\IMG\girl.bmp');A=imread('D:\IMG\girl.bmp');
J=imnoise(A,'gaussian',0.002);
subplot(1,3,2),imshow(J),title('加噪声后图像');
K=zeros(size(A));
for i=1:100
J=imnoise(A,'gaussian',0.002);
J1=im2double(J);
K=K+J1;
end
K=K/100;
subplot(1,3,3);
imshow(K);
title('消噪声后图像');