猿问

能否有高人帮忙看看是怎么回事啊,为什么会出错?怎么解决这个问题,谢谢!

代码如下:
im=imread('1.bmp'); 
Im=rgb2gray(im);
[nRow, nCol] = size(Im);
N=nRow*nCol;
I=reshape(Im, N, 1);
I=double(I);
%用于还原图像
Image=I;
L=nRow;C=nCol;
%参数
SI=0.2;SX=4;r=10;
PV=0.06;
W = NcutComputeW(I, N, nRow, nCol, SI, SX, r);%W是一个N X N的对称半正定矩阵
Ncut=cell(2,4);
Seg=(1:N)';
N =length(W);
d = sum(W,2);
D = spdiags(d,0,N,N);
%求(D-W)*Y=r*D*Y,其中D是一个N x N的对角矩阵,Y是一N x 1的列向量,
%W是一个N X N的对称半正定矩阵,
[Y,U]= eigs(D-W,D,2, 'sm');%约束条件为Y'*D*1=0;
%其目的是求(D-W)*Y=r*D*Y的第二小特征向量;
Y1 = Y(:,2);
————————————————————————————————
运行时候当图像为4 x5时不会出错,当图像为20 x 30时错误提示为:
??? Error using ==> eigs
Error with ARPACK routine dsaupd: info = -9999

Error in ==> testImage at 21
[Y,U]= eigs(D-W,D,2, 'sm');

慕容708150
浏览 181回答 1
1回答

交互式爱情

我也遇到这样的错误。 ,NcutComputeW.m 文件中, DF = FJ - FI 这一行有个错误,致使得出的W不是对称的。
随时随地看视频慕课网APP
我要回答