Filter löschen
Filter löschen

What does this error- ''Out of range subscript'' mean during using sub2ind?

1 Ansicht (letzte 30 Tage)
joynob ahmed
joynob ahmed am 16 Jun. 2020
Kommentiert: joynob ahmed am 18 Jun. 2020
Hi! I am working with border irregularity. In my code I had to find out the diagonals of a box. In single code it works but when I used it along other code it shows this error message. I couldn't find the problem.My code is given below:
%read binary mask
mask = imread('image.bmp');
mask=mask(41:616,128:894,1)>128;
%fill all holes:
%flip mask and select everything that is not the outer area
mask= bwlabel(~mask,4) ~= 1;
%find the edge pixels with something like imerode
SE=true(3*ones(1,ndims(mask)));%structuring element
edge= mask & ~( mask & convn(mask,SE,'same')==sum(SE(:)) );
%find the bounding box with 1 px margin
colind_first=find(sum(mask,1),1,'first')-1;
colind_last =find(sum(mask,1),1,'last')+1;
rowind_first=find(sum(mask,2),1,'first')-1;
rowind_last =find(sum(mask,2),1,'last')+1;
box=false(size(mask));
box([rowind_first rowind_last], colind_first:colind_last )=true;
box( rowind_first:rowind_last ,[colind_first colind_last])=true;
%add the diagonal lines to the box
x=false(size(mask));
p=polyfit([rowind_first rowind_last],[colind_first colind_last],1);
row=rowind_first:rowind_last;
col=round(polyval(p,row));
x(sub2ind(size(x),row,col))=true;
%add other diagonal to x
p=polyfit([rowind_first rowind_last],[colind_last colind_first],1);
col=round(polyval(p,row));
x(sub2ind(size(x),row,col))=true;
In my main code I had to delete this line so I can't understand if it causes the problem:
mask=mask(41:616,128:894,1)>128;
where ''mask'' is the segmented image.The image is:
  11 Kommentare
KSSV
KSSV am 18 Jun. 2020
What exactly is your problem? You want diagonals of the bounding box of the irregular domain i.e white region in the image?
joynob ahmed
joynob ahmed am 18 Jun. 2020
I have solved this. Thank you all for the help.

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by