因为我不是很会matlab,希望大神告诉我怎么修改,改正
因为我是要用迭代阈值法测车道标线的,我现在这个程序每次都是有下面那个错误,我马上就要交毕业设计终稿了,求求各位大神了
clear all;
I=imread('1.png'); (这个''里面原来用的是rice.jpg,这个图片是matlab自带的,我用的是matlabr2010b的版本,用rice.jpg的时候程序没问题,用我自己的照片就不行)
ZMAX=max(max(I)); %取出最大灰度值
ZMIN=min(min(I)); %取出最小灰度值
TK=(ZMAX+ZMIN)/2;
bcal=1;
ISIZE=size(I); %读出图像大小
while(bcal)
iForeground=0; %定义前景和背景数
iBackground=0;
ForegroundSum=0; %定义前景和背景灰度总和
BackgroundSum=0;
for i=1:ISIZE(1) %循环部分求解读下%
for j=1:ISIZE(2)
tmp=I(i,j);
if(tmp>=TK)
iForeground=iForeground+1;
ForegroundSum=ForegroundSum+double(tmp); %前景灰度值
else
iBackground=iBackground+1;
BackgroundSum=BackgroundSum+double(tmp);
end
end
end
ZO=ForegroundSum/iForeground; %计算前景和背景的平均值
ZB=BackgroundSum/iBackground;
TKTmp=uint8(ZO+ZB)/2;
if(TKTmp==TK )
bcal=0;
else
TK=TKTmp;
end %当阈值不再变化的时候,说明迭代结束
end
disp(strcat('迭代后的阀值:',num2str(double(TK)))); %不懂这部分程序%
newI=im2bw(I,double(TK)/255);
subplot(1,2,1);imshow(I);
xlabel('(a)原始图像');
subplot(1,2,2);imshow(newI);
xlabel('(b)迭代法分割效果图') %程序 OK 没问题 求解读
-------------------------------------------------------------------------------------
迭代后的阀值:128 128 128(这个是的出来的结果)
??? Error using ==> im2bw>parse_inputs at 131
IM2BW: Threshold luminance LEVEL has to be a non-negative number between 0 and 1.
Error in ==> im2bw at 39
[A,map,level] = parse_inputs(varargin{:});
--------------------------------------------------------------------
还有我们老师让我们拍小视频,然后把视频处理成图像,我处理好图像后,把彩色图转化成灰度图的时候会有下面分割线的结果,这个会影响我上面的程序吗?
RGB=imread('1.jpg','jpg'); %读入彩色图片
figure(1),imshow(RGB),title('彩色图'); %显示彩色图片
I=rgb2gray(RGB); %彩色转化成灰度图
figure(2),imshow(I),title('灰度图'); %显示灰度图
---------------------------------------------------------------
Warning: Image is too big to fit on screen; displaying at 25%
> In imuitools\private\initSize at 73
In imshow at 262
Warning: Image is too big to fit on screen; displaying at 25%
> In imuitools\private\initSize at 73
In imshow at 262
-----