Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2009-05-16
帖子: 4
声望力: 0 ![]() |
![]()
这个是大津法的程序:
I=imread('coins.png'); subplot(131)imshow(I); title('原始图象') %下面使用MATLAB函数计算阈值 level=graythresh(I); %用大津法计算全局图像I的阈值 BW=im2bw(I,level); %阈值分割 subplot(132),imshow(BW) title('graythresh计算灰度阈值') disp(strcat('简化大津法计算灰度阈值:',num2str(uint8(level*255)))) %下面的MATLAB程序实现简化计算阈值 iMAX=max(max(I)); iMin=min(min(I)); %计算最大和最小值 T=double(iMin:iMax); iSize=size(I) muxSize=iSize(1)*iSize(2); for i=1:length(T) %从最小灰度值到最大值分别计算方差 TK=T(1,i); iForeground=0; iBackground=0; %定义前景和背景数 Foreground=0; Background=0; %定义前景和背景灰度总和 for j=1:iSize(1) for k=1:iSize(2) tmpData=I(j,k) if(tmpData>=TK) %前景像素点的计算 iForeground=iForeground+1; ForegroundSum=ForegroundSum+double(tmpData); else %背景像素点的计算 iBackground=iBackground+1; BackgroundSum=BackgroundSum+double(tmpData); end end end %计算前景和背景的比例和平均灰度值 %这里存在一个0分母的情况,导致告警,解决方法很简单, %但不影响结果,请读者改进 w0 = iForeground/muxSize; w1 = iBackground/muxSize; u0 = ForegroundSum/iForeground; U1 = BackgroundSum/iBackgroundSum; T(2,i) = w0*w1*(U0-U1)*(U0-U1); %第二行为计算的方差 end %遍历后寻找I的第二行的最大值 oMax = max(T(2, ![]() %第二行方差的最大值,忽略NaN idx = find(T(2, ![]() %方差最大值所对应的列号 T= uint8(T(1,dix)); %从第一行取出灰度值作为阈值 disp(strcat('简化大津法计算灰度阈值:',num2str(T))) BW = im2bw(I,double(T)/255); %阈值分割 subplot(133),imshow(BW) title('简化大津法计算阈值') 但是在MATLAB上运行后 会出现: ??? Error: File: C:\MATLAB7\work\otsu.m Line: 2 Column: 13 Missing MATLAB operator. 为什么啊?!!!!! |
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2008-05-13
年龄: 44
帖子: 232
声望力: 21 ![]() |
![]()
第二行:subplot(131)imshow(I);
没有逗号或分号(matlab operator) subplot(131),imshow(I);应该就可以了
__________________
工科'985'博士,(图像处理、分析及理解;模式识别;运动估计;数据分析等)定做程序、算法实现--qq:752105755 |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2009-05-16
帖子: 4
声望力: 0 ![]() |
![]()
谢谢ls,我试试哈~
|
![]() |
![]() |
![]() |
#4 |
高级会员
注册日期: 2008-11-01
年龄: 39
帖子: 406
声望力: 26 ![]() |
![]()
lz 另外iMax变量上下大小写不一致
T= uint8(T(1,dix));中变量名有错误 Thx for reading. PS:若还算满意,直接点击“Thanks”,再次登陆时亦便于查看回答是否真的帮到你了。 个人观点 仅供参考 多多交流 相互学习 |
![]() |
![]() |
![]() |
#5 |
初级会员
注册日期: 2009-05-16
帖子: 4
声望力: 0 ![]() |
![]() |
![]() |
![]() |