Getting Index in position 1 exceeds arrray bound error
이전 댓글 표시
I wrote a MATLAB code which will put a black box of 10 pixels width at the center of image but I am getting error which says "Index in position 1 exceeds array bounds error"
Here is the code for same
image = imread('image.jpg');
[r,c]=size(image);
width=10;
color=6;
new_image=ones(r,c)*color;
new_image=uint8(new_image);
for row=1:r
for column=1:(c-width)/2
new_image(row,column)=image(row,column);
end;
for column=(c+width)/2:c
new_image(row,column)=image(row,column);
end;
end;
for column=1:c
for row=1:(r-width)/2
new_image(row,column)=image(row,column);
end;
for row=(r+width)/2:c
new_image(row,column)=image(row,column);
end;
end;
imshow(new_image);
And for the logic of the code this code makes a matrix of ones as the size of image pixels and after that I iterate the code from the matrix and adding the pixels value of original image to the new matrix where the box is not present.
채택된 답변
추가 답변 (1개)
Walter Roberson
2020년 10월 3일
0 개 추천
jpeg images are almost always rgb even when they look grey. Not always but quite rare for real grey jpeg.
When you ask for size() of an rgb image but you only provide two output variables, then the second output is not the number of columns, and is instead the number of columns multiplied by 3.
Please read the details of size() carefully.
카테고리
도움말 센터 및 File Exchange에서 Image Arithmetic에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
