Note that there are some explanatory texts on larger screens.

plurals
  1. POSubscript indices must either be real positive integers or logicals Error + Code
    primarykey
    data
    text
    <p>I was wondering if someone can explain to me what this error means. And, if possible, how to resolve it? ??? Subscript indices must either be real positive integers or logicals.</p> <pre><code>Error in ==&gt; interp2&gt;linear at 344 F = ( arg3(ndx).*(onemt) + arg3(ndx+1).*t ).*(1-s) + ... Error in ==&gt; interp2 at 220 zi = linear(ExtrapVal,x,y,z,xi,yi); Error in ==&gt; snake at 71 ssx = gamma*xs - kappa*interp2(fx,xs,ys); </code></pre> <p>This is my complete code:</p> <pre><code>image = imread('image.jpg'); %parameters alpha = 0.001; beta = 0.4; kappa=0.0001; gamma = 100; N = 100; wl = 10; we = 10; wt = 10; smth = rgb2gray(image); % Calculating size of image [row col] = size(image) eline = smth; %eline is simply the image intensities [grady,gradx] = gradient(double(smth)); eedge = -1 * sqrt ((gradx .* gradx + grady .* grady)); %eedge is measured by gradient in the image m1 = [-1 1]; m2 = [-1;1]; m3 = [1 -2 1]; m4 = [1;-2;1]; m5 = [1 -1;-1 1]; cx = conv2(smth,m1,'same'); cy = conv2(smth,m2,'same'); cxx = conv2(smth,m3,'same'); cyy = conv2(smth,m4,'same'); cxy = conv2(smth,m5,'same'); for i = 1:700 for j= 1:900 % eterm as deined in Kass et al Snakes paper eterm(i,j) = (cyy(i,j)*cx(i,j)*cx(i,j) -2 *cxy(i,j)*cx(i,j)*cy(i,j) + cxx(i,j)*cy(i,j)*cy(i,j))/((1+cx(i,j)*cx(i,j) + cy(i,j)*cy(i,j))^1.5); end end eext = (double(wl.*eline) + double(we.*eedge -wt) .* eterm); %eext as a weighted sum of eline, eedge and eterm [fx, fy] = gradient(eext); %computing the gradient xs=1:900; xs=xs'; ys=repmat(242,1,900); ys=ys' [m n] = size(xs); [mm nn] = size(fx); %populating the penta diagonal matrix A = zeros(m,m); b = [(2*alpha + 6 *beta) -(alpha + 4*beta) beta]; brow = zeros(1,m); brow(1,1:3) = brow(1,1:3) + b; brow(1,m-1:m) = brow(1,m-1:m) + [beta -(alpha + 4*beta)]; % populating a template row for i=1:m A(i,:) = brow; brow = circshift(brow',1)'; % Template row being rotated to egenrate different rows in pentadiagonal matrix end [L U] = lu(A + gamma .* eye(m,m)); Ainv = inv(U) * inv(L); % Computing Ainv using LU factorization %moving the snake in each iteration for i=1:N; ssx = gamma * xs - kappa * interp2(fx,xs,ys); %This is where I receive the error ssy = gamma * ys - kappa * interp2(fy,xs,ys); %calculating the new position of snake xs = Ainv * ssx; ys = Ainv * ssy; %Displaying the snake in its new position % imshow(image,[]); % hold on; plot([xs; xs(1)], [ys; ys(1)], 'r-'); % hold off; % pause(0.001) end; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload