"Index exceeds matrix dimensions" in imwrite()
Show older comments
Hello everyone, I am trying to save my images using imwrite() but its hitting "Index exceeds matrix dimensions." error at line no 134 i.e at " imwrite(final_img, strcat(output_folder, srcFiles(i).name));" I am not getting how to resolve this error. If any of you have an answer to this please tell me. Thank you!!
if true
clc;
clear all;
srcFiles = dir('C:\Users\Dell\Desktop\Messi_Tiff\abn_1\*.tif');
x= length(srcFiles);
for i=1:x
filename = strcat('C:\Users\Dell\Desktop\Messi_Tiff\abn_1\',srcFiles(i).name);
I = imread(filename);
%imshow(I);
green_cnl = I(:, :, 2);
K = imadjust(green_cnl,[0.13 0.3],[]);
%figure, imshow(K);
img_adap = adapthisteq(K);
%figure, imshow(img_adap);
se = strel('disk',15);
close_img = imclose(img_adap,se);
%figure, imshow(close_img),title('Closeing');
img_sub=imsubtract(close_img,img_adap);
%figure, imshow(img_sub),title('Subtract');
level=graythresh(img_sub);
img_BW = im2bw(img_sub,level);
%figure,imshow(img_BW),title('Binary image using graythresh');
BW_10_test = bwareaopen(img_BW,150);
%figure,imshow(BW_10_test),title('without bessels.................');
[xx,yy]=find(BW_10_test==1);
nn=[xx,yy];
img_BW_test=im2bw(img_sub,0.14);
%figure,imshow(img_BW_test),title('create binary image using 0.15');
img_BW_filter = medfilt2(img_BW_test);
%figure,imshow(img_BW_filter),title('Median Filtering');
BW_10 = bwareaopen(img_BW_filter,10);
%figure,imshow(BW2),title('last line');
BW_100 = bwareaopen(img_BW_filter,100);
%figure,imshow(BW_100),title('last line2');
img1_BW=imsubtract(BW_10,BW_100);
%figure,imshow(img1_BW),title('binary img1 using size 10 to 100');
for i=1:size(nn)
pos_x=nn(i,1);
pos_y=nn(i,2);
img1_BW(pos_x,pos_y)=0;
end
%figure,imshow(img1_BW),title('Binary img1 without vassels pixels');
img_imadjust_sub = img_sub;
%figure, imshow(img_imadjust_sub),title('img_imadjust_sub');
[x1,y1]=find(img_imadjust_sub>=58 & img_imadjust_sub<=155);
n1=[x1,y1];
img2=zeros(size(img_adap));
for i=1:size(n1)
pos_x=n1(i,1);
pos_y=n1(i,2);
img2(pos_x,pos_y)=1;
% test3(pos_x,pos_y)=255;
end
img2_filter=medfilt2(img2);
%figure, imshow(img2_filter),title('im2 using color');
BW2_10 = bwareaopen(img2_filter,10);
%figure,imshow(BW2),title('last line');
BW2_100 = bwareaopen(img2_filter,100);
%figure,imshow(BW2_100),title('last line2');
img2_BW=imsubtract(BW2_10,BW2_100);
%figure,imshow(img2_BW),title('img2 with noise');
for i=1:size(nn)
pos_x=nn(i,1);
pos_y=nn(i,2);
img2_BW(pos_x,pos_y)=0;
end
%figure,imshow(img2_BW),title('img2 with out noise');
final_img=zeros(size(img_adap));
img_add=imadd(img1_BW,img2_BW,'uint8');
[x3,y3]=find(img_add==2);
n3=[x3,y3];
for i=1:size(n3)
pos_x=n3(i,1);
pos_y=n3(i,2);
final_img(pos_x,pos_y)=1;
end
img_mask=imread('D:\mask.tif');
img_mask=im2bw(img_mask);
[xmask,ymask]=find(img_mask==0);
nmask=[xmask,ymask];
for i=1:size(nmask)
x=nmask(i,1);
y=nmask(i,2);
final_img(x,y)=0;
end
%figure,imshow(final_img),title('MA Detection');
%final_img = im2uint8(final_img);
%filename = [sprintf('%03d',i) '.tif'];
output_folder = 'D:\abn_1\';
%fullname = fullfile(output_folder,filename);
%imwrite(IM2,fullname);
imwrite(final_img, strcat(output_folder, srcFiles(i).name));
end
end
Accepted Answer
More Answers (0)
Categories
Find more on Images in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!