这段matlab代码放在matlab中要怎么才能运行,菜鸟提问。

从来没用过matlab,不知道怎么运行的。复制到matlab 7中,显示:
??? Otsu-最大类间方差
|
Error: Missing variable or function.要怎么改才行啊。
代码如下:
% Otsu-最大类间方差Matlab代码 最大类间方差法原理:最大类间方差法是由日本学者大津于1979年提出的,是一种自适应的阈值确定的方法,又叫大津法,简称OTSU。它是按图像的灰度特性,将图像分成背景和目标2 部分。背景和目标之间的类间方差
% 大,说明构成图像的2 部分的差别越大,当部分目标错分为背景或部分背景错分为目标都会导致2 部
% 分差别变小。因此,使类间方差最大的分割意味着错分概率最小。
% matlab代码:

function th=thresh_md(a);
x=imread(a);
a=rgb2gray(x);
imshow(a)
count=imhist(a);
[m,n]=size(a);
N=m*n;
L=256;
count=count/N;

for i=1:L
if count(i)~=0
st=i-1;
break;
end
end
for i=L:-1:1
if count(i)~=0
nd=i-1;
break;
end
end
f=count(st+1:nd+1); %f是每个灰度出现的概率
p=st; q=nd-st;
u=0;
for i=1:q
u=u+f(i)*(p+i-1); %u是像素的平均值
ua(i)=u; %ua(i)是前i个像素的平均灰度值
end;

for i=1:q
w(i)=sum(f(1:i)); %w(i)是前i个像素的累加概率
end;

d=(u*w-ua).^2./(w.*(1-w));
[y,tp]=max(d); %可以取出数组的最大值及取最大值的点
th=tp+p;

for i=1:m
for j=1:n
if a(i,j)>th
a(i,j)=0;
else
a(i,j)=255;
end
end
end
imshow(a);

从你的程序代码来看你是要处理一张图片,现在假如你要处理的图片名称是abc.bmp,放在D盘根目录下,想要运行程序你先将你发的这段代码另存为一个文件,名称是thresh_md.m,然后在命令窗口输入thresh_md('D:\abc.bmp')就会得到运行结果了。我刚刚试了一下,结果见附图,左边是未处理的,右边是处理过的,你是想要这个效果不?你可以把你你要处理的图片改名为abc.bmp在放到同样的路径下就可以了。如果你还不懂可以给我留言。希望对你有帮助。

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-05-05
function th=thresh_md(a); 看见这个没有??里面那个a是你要输入的参数。具体的格式我不知道你要解决什么问题。不过从你的函数体这条语句 x=imread(a);可以推出a是一条路径。因为imread函数读取的就是路径
如下面这个参数imread(C:\picture:\glass.bmp)
所以你会出现错误Missing variable or function. 就是缺少变量的意思,我看了一下里面用的函数都是matlab自带函数。你要明白具体解决什么问题,需要什么数据, 把那条数据的路径找出来。
此外 我不建议你直接吧函数体放进控制窗口,最好编成一个函数命名thresh_md.m,然后直接调用它。我不知道你明不明白,我说的应该比较简单了,如果不建议你对matlab入下门。还不明白就留言。

这段matlab代码放在matlab中要怎么才能运行,菜鸟提问。
从你的程序代码来看你是要处理一张图片,现在假如你要处理的图片名称是abc.bmp,放在D盘根目录下,想要运行程序你先将你发的这段代码另存为一个文件,名称是thresh_md.m,然后在命令窗口输入thresh_md('D:\\abc.bmp')就会得到运行结果了。我刚刚试了一下,结果见附图,左边是未处理的,右边是处理...

matlab写好一段代码怎么运行
或者按F5功能键。 command 窗口,输入代码直接回车即可。 本回答由提问者推荐 举报| 答案纠错 | 评论 14 3 流星日食 采纳率:60% 擅长: 教育\/科学 医疗健康 编程语言 理工学科 资源共享 其他回答 在编辑窗口中就点save and run 那个有绿三角的按钮,或是复制到命令窗口中按回车 xiaobaihewl | 发布于2011-...

很菜鸟的一个问题。如何运行matlab啊。
可以写在一个m-file里面,然后命名存放在工作路径下,一般是matlab安装目录下的work目录,在command window里面调用m-file脚本时,只须键入其文件名即可。

matlab运行程序具体步骤 谢谢
function result=pe_simu(totalbits,snr_db,E,R)这行开始,到最后复制粘贴到一个新的m文件中。保存后,把其前面的代码放在命令窗口运行,就可以。

matlab 我是菜鸟,求教简单的问题。比如一个标准的二阶传递函数G(S)=...
这个很容易用function语句实现,首先说明一下,MATLAB中不识别ζ,这里用a代替ζ,这并不影响其它.在M文件中,输入并保存.function f=G(wn,a)syms S f=wn.^2.\/(S^2+2*a.*wn.*S+wn.^2);end 在命令窗口中,输入:G(wn,a)就可以得到你想要的结果了.如:输入  G(2,3)其结果为:4...

MATLAB的运行环境
matlab编写的脚本文件,为“*.m”格式。应该在装有matlab的机器上才能运行。目前,如果想脱离matlab环境来运行matlab编写的代码,就需要做混编了,当下比较流行的是com组件混编

我是菜鸟 请问书里的这个matlab脚本怎么画出图形来? n=[-20:1:20...
一个分号就是一句语句,你把这些一句一句的在matlab命令窗口中输入就行了 使用脚本文件的话你新建一个m文件,然后把他们都输入,保存,然后按F5就可以画出图像了!祝你学习愉快!

matlab simulink 无法保存 见下图 求大神指导 说具体点 我是菜鸟= =
1、保存之前,先运行下列命令:set_param('model','SavedCharacterEncoding','windows-1252')其中model是模型的名字(例如untitled);Windows-1252也可以改成ISO-8859-1。2、下次打开模型之前,先运行:bdclose allslCharacterEncoding Windows-1252其中Windows-1252最好和之前保存的一致,不过,换成ISO-...

求教MATLAB问题。 想了解MTALAB功能
第一,你首先你去了解三维图形的绘制。在matlab里面绘图的本质在于,首先描点,然后连线。于是只需要知道各点的坐标就好,然后最后进行连线(这个工作就用matlab里面的命令来完成了)在这里我可以举个小例子。比如空间里已知(3 1 1),(1 2 4),(2 3 5)这三个点。可以这样来编程:x=[3 1 ...

MATLAB的运行环境
matlab编写的脚本文件,为“*.m”格式。应该在装有matlab的机器上才能运行。目前,如果想脱离matlab环境来运行matlab编写的代码,就需要做混编了,当下比较流行的是com组件混编

相似回答