① 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编程实现图像处理
1、规定图片的大小,比如480*640;
2、规定分块的大小,比如24*32(分成20*20块);
3、该块随即取n个像素点,先假设取20个,然后平均这20个像素点的G值定义为G1,求这块所有像素点的G值平均值G0;
4、求G1与G0的方差varG,存进一个数组中备用;
image=imread('tupian.jpg');
G1=0;temp=[];
for i=1:24:480
for j=1:32:640
area=image(i:i+23,j:j+31,:);%取出该区域
for n=1:20
x=round(rand()*24);
y=round(rand()*32);%随即生成要取点的x,y坐标
while x==0 | y==0
x=round(rand()*24);
y=round(rand()*32);
end
G1=G1+double(area(x,y,2));%G1中保存此块中20个点的G值和
end
G1=double(G1)/20;%G1为20个点的G值平均值
G0=mean(mean(area(:,:,2)));%G0保存此块G值的均值
G=[G1,G0];
varG=var(G);%求出方差
temp=[temp;varG];
end
end
上面程序可以运行。
③ MATLAB图像处理程序~
这是函数m文件,不能直接运行的,你的先给出f,m,n,rx,rc,然后调用这个函数m文件啊
④ matlab 图像处理
I=imread('lena.jpg');
I1=rgb2gray(I);
figure; hold on;
R = I(:,:,1);
G = I(:,:,2);
B = I(:,:,3);
N=imhist(I1); plot(N,'k-');
N=imhist(R); plot(N,'r-');
N=imhist(G); plot(N,'g-');
N=imhist(B); plot(N,'b-');
legend('L','R','G','B','Location','NorthWest');
xlim([0,255]);
亮度和对比度调整可以用brighten(),imadjust()两个函数
⑤ 数字图像处理可以全部用matlab编程么
看你要用在哪儿了,matlab是一个有辅助编程功能的强大软件,要是你的目的是编写c语言或是其他语言的程序,然后打到单片机嵌入式里做些简单的图像识别与处理,这样就要尽量把你的算法简单化,matlab的许多处理方法,比如好多函数,在上位机,也就是我们的电脑上运行没问题,要单片机上是坚决不能运行的,听你的语气你应该不简单的在做数字图像的处理吧,这只是其中一步吧可能,matlab不错,好多时候可以先在matlab上实现图像的处理,然后再考虑程序的移植问题,放手去做吧
⑥ 初学图像处理,matlab程序解读
x=imread('D:\ebook\lena.bmp');%%读入图像
x=rgb2gray(x);%%将彩色图像转化成灰度图像,matlab只处理灰度图像
x=double(x);%%将图像数据类型转化成双精度,一般计算都是采用双精度
p=wiener2(x);%%对图像进行维纳滤波
figure,imshow(p,[
]);%%显示滤波后的图像
h=[0
1
0;1
-4
1;0
1
0];%%Laplacian算子掩膜矩阵
q=
conv2(x,h,
'same');%%对图像进行反向滤波
r=
x
-
q
;%%原图像与反向滤波后的图像进行差运算
figure,imshow(r,[
])
;%%显示差运算后的图像
⑦ MATLAB图像处理编程问题
提问的艺术
在网络世界里,当提出一个技术问题时,你能得到怎样的回答?这取决于挖出答案的难度, 同样取决于你提问的方法。本指南旨在帮助你提高发问技巧,以获取你最想要的答案……
不想掩饰对这样一些人的蔑视--他们不愿思考,或者在发问前不去完成他们应该做的事。这种人只会谋杀时间--他们只愿索取,从不付出,无端消耗我们的时间,而我们本可以把时间用在更有趣的问题或者更值得回答的人身上。我们称这样的人为“失败者”(由于历史原因,我们有时把它拼作“lusers”)。
提问之前(Before You Ask)
在通过电邮、新闻组或者聊天室提出技术问题前,检查你有没有做到: 1. 通读手册,试着自己找答案。
2. 在FAQ里找答案(一份维护得好的FAQ可以包罗万象:)。 3. 在网上搜索(个人推荐google~~~)。 4. 向你身边精于此道的朋友打听。
当你提出问题的时候,首先要说明在此之前你干了些什么;这将有助于树立你的形象:你不是一个妄图不劳而获的乞讨者,不愿浪费别人的时间。如果提问者能从答案中学到东西,我们更乐于回答他的问题。
周全的思考,准备好你的问题,草率的发问只能得到草率的回答,或者根本得不到任何答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。
小心别问错了问题。
另一方面,表明你愿意在找答案的过程中做点什么,是一个非常好的开端。“谁能给点提示?”、“我这个例子里缺了什么?”以及“我应该检查什么地方?”比“请把确切的过程贴出来”更容易得到答复。因为你显得只要有人指点正确的方向,你就有完成它的能力和决心。
怎样提问 (When You Ask)
谨慎选择论坛
小心选择提问的场合。如果象下面描述的那样,你很可能被忽略掉或者被看作失败者: 1. 在风马牛不相及的论坛贴出你的问题
2. 在探讨高级技巧的论坛张贴非常初级的问题;反之亦然 3. 在太多的不同新闻组交叉张贴
⑧ 急求matlab图像处理编程
a=imread('图片‘)
对a矩阵进行处理即可。
⑨ MATLAB数字图像处理程序
窗函数设计低通滤波器:
fp=1000;
fc=1200;
as=100;
ap=1;
fs=22000;
wp=2*fp/fs;
wc=2*fc/fs;
N=ceil((as-7.95)/(14.36*(wc-wp)/2))+1;
beta=0.1102*(as-8.7);
window=Kaiser(N+1,beta);
b=fir1(N,wc,window);
freqz(b,1,512,fs);
结果:
高通滤波器:
fs=22000;
Wp=2*5000/fs;
Ws=2*4800/fs;
Ap=1;
As=100;
N=ceil(8*pi/(Wp-Ws))+1;
N=N+mod(N+1,2)+1;
Wc=(Wp+Ws)/2/pi;
h=fir1(N,Wc,'high');
omega=linspace(0,pi,512);
freqz(h,1,omega);
结果:
带通滤波器:
fs=22000;
Wp1=2*1200/fs;
Wp2=2*3000/fs;
Wc1=2*1000/fs;
Wc2=2*3200/fs;
Ap=1;
As=100;
W1=(Wp1+Wc1)/2;
W2=(Wp2+Wc2)/2;
wdth=min((Wp1-Wc1),(Wc2-Wp2));
N=ceil(11*pi/wdth)+1;
b = fir1(N,[W1 W2]);
freqz(b,1,512,fs)
结果:
双线性法设计低通滤波器:
fp=1000;
fc=1200;
as=100;
ap=1;
fs=22000;
wp=2*fp/fs;
wc=2*fc/fs; %归一化截止频率
[n,wn]=ellipord(wp,wc,ap,as);%求数字滤波器的最小阶数和归一化截止频率
[b,a]=ellip(n,ap,as,wn);%求传递函数的分子分母系数
freqz(b,a,512,fs);
结果:
滤波:
d=filter(b,a,y);
⑩ matlab 图像处理编程
你的提问也太简便了吧,是不是来凑问题的?