How to fix Index position 3 exceeds array bounds (must not exceed 1)
Ältere Kommentare anzeigen
I'm doing cropping and zero padding for bounding box images. However, there is error 'Index in position 3 exceeds array bounds (must not exceed 1).' I don't understand the error and location of 'index in position 3' . Hence, I can't solve it.
Please help me with this problem. Below are my codes.
%% Bounding box
imbwlabel=bwlabel(I8); %bwlabel works only in binary (b&w,double) image
figure;
imshow(label2rgb(imbwlabel)); %this is important bcs it helps to create the bounding box
%in colored (uint8,unit16 etc) image and not in binary (b&w) image
bboxes=regionprops(imbwlabel,'BoundingBox');
[L, n]=bwlabel(I8);
bboxes=regionprops(I8,'BoundingBox','Centroid');
figure;imshow(I10);%title('Image with Bounding box');
axis image off
hold on
for k=1 : length(bboxes)
CurrBB=bboxes(k).BoundingBox;
% cent=cat(1,bboxes.BoundingBox);
% plot(cent(:,1),cent(:,2),'g*')
rectangle('Position', [CurrBB(1),CurrBB(2),CurrBB(3),CurrBB(4)], 'EdgeColor','m','LineWidth',2)
end
hold off
%% Crop image from bounding box
if ~isempty(bboxes)
for p=1:length(bboxes)
CurrBB=bboxes(p).BoundingBox;
obj = imcrop(I8,CurrBB);
[m, n, l]=size(obj);
if (m > 227 || n > 227)
obj=imresize(obj,[227 227]);
end
I12=zeros(227,227);
I12=uint8(I12);
for i=1:m-1
for j=1:n-1
for k=1:3
I12(i,j,k)=obj(i,j,k);
end
end
end
figure;imshow(I12);
% figure;imshow(obj);
imwrite(I12,sprintf('%dpad.png',p));
end
end
Akzeptierte Antwort
Weitere Antworten (1)
dika
am 24 Sep. 2024
0 Stimmen
I = imread('download.png');
R = I(:,:,1);
G = I(:,:,2);
Index in position 3 exceeds array bounds. Index must not exceed 1.
please tell me how to fix the code
Kategorien
Mehr zu Matrix Indexing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!