필터 지우기
필터 지우기

saving series of image

조회 수: 4 (최근 30일)
rohan
rohan 2014년 4월 24일
댓글: Image Analyst 2014년 4월 28일
imwrite(imageArray,'C:\Users\Public\Videos\Sample Videos\pro\New','jpg');
this is my code to read series of image and save it to other directory
however i could not save it properly..
>> for k = 2 : 10
% Get the base file name.
baseFileName = sprintf('img%d.jpg', k);
% Combine it with the folder to get the full filename.
fullFileName = fullfile(folder, baseFileName);
% Read the image file into an array.
imageArray = imread(fullFileName);
figure,imshow(imageArray);
imwrite(imageArray,'C:\Users\Public\Videos\Sample Videos\pro\New','jpg');
end

채택된 답변

Image Analyst
Image Analyst 2014년 4월 24일
See the FAQ for proper code that you can modify to do that: http://matlab.wikia.com/wiki/FAQ#How_can_I_process_a_sequence_of_files.3F
  댓글 수: 5
rohan
rohan 2014년 4월 27일
if true
% code
folder='C:\Users\Public\Videos\Sample Videos\pro\Ne';
for k = 2 : 10
% Get the base file name.
baseFileName = sprintf('img%d.jpg', k);
% Combine it with the folder to get the full filename.
fullFileName = fullfile(folder, baseFileName);
% Read the image file into an array.
imageArray = imread(fullFileName);
a=imageArray;
figure(1);
imshow(a);
title('color image');
c=rgb2gray(a);
b=imresize(c, [512 512]);
figure(2);
imshow(b);
title('original gray scale image');
n=512;
k=1;
for i=1:1:n
for j=1:2:n
if (j<=n-1)
s(i,k)=(b(i,j)+b(i,j+1))/2;
d(i,k)=b(i,j)-b(i,j+1);
end
k=k+1;
end
k=1;
end
for i=1:1:n
for j=1:1:n/2
b(i,j)=s(i,j);
b(i,j+n/2)=d(i,j);
end
end
for j=1:1:n/2
for i=1:2:n
if i<=n-1
s(k,j)=(b(i,j)+b(i+1,j))/2;
d(k,j)=b(i,j)-b(i+1,j);
end
k=k+1;
end
k=1;
end
for i=1:1:n/2
for j=1:1:n/2
b(i,j)=s(i,j);
b(i+n/2,j)=d(i,j);
end
end
figure(3);
imshow(b);
title('image after one level of compression')
for i=1:1:n/2
for j=1:2:n/2
if (j<=n/2-1)
s(i,k)=(b(i,j)+b(i,j+1))/2;
d(i,k)=b(i,j)-b(i,j+1);
end
k=k+1;
end
k=1;
end
for i=1:1:n/2
for j=1:1:n/4
b(i,j)=s(i,j);
b(i,j+n/4)=d(i,j);
end
end
for j=1:1:n/4
for i=1:2:n/2
if i<=n/2-1
s(k,j)=(b(i,j)+b(i+1,j))/2;
d(k,j)=b(i,j)-b(i+1,j);
end
k=k+1;
end
k=1;
end
for i=1:1:n/4
for j=1:1:n/4
b(i,j)=s(i,j);
b(i+n/4,j)=d(i,j);
end
end
figure(4);
imshow(b);
title('image after two level of compression')
for i=1:1:n/4
for j=1:2:n/4
if (j<=n/4-1)
s(i,k)=(b(i,j)+b(i,j+1))/2;
d(i,k)=b(i,j)-b(i,j+1);
end
k=k+1;
end
k=1;
end
for i=1:1:n/4
for j=1:1:n/8
b(i,j)=s(i,j);
b(i,j+n/8)=d(i,j);
end
end
for j=1:1:n/8
for i=1:2:n/4
if i<=n/4-1
s(k,j)=(b(i,j)+b(i+1,j)/2);
d(k,j)=b(i,j)-b(i+1,j);
end
k=k+1;
end
k=1;
end
for i=1:1:n/8
for j=1:1:n/8
b (i, j)=s(i,j);
b (i+n/8, j)=d(i,j);
end
end
b=imcrop(b,[0 0 64 64]);
figure (5);
imshow(b);
title('image after third level of compression')
b=imresize(b, [3456 4608]);
imshow(b);
imwrite(b,'C:\Users\Public\Videos\Sample Videos\pro\Newr\im%d.jpg',k);
end
end
Image Analyst
Image Analyst 2014년 4월 28일
Rohan, you totally ignored the FAQ link I gave you. How do I know? If you had looked at it you would NOT have written this:
imwrite(b,'C:\Users\Public\Videos\Sample Videos\pro\Newr\im%d.jpg',k);
imwrite() is not like sprintf() - it does not embed "k" into the filename string. You need to do it in two steps like the FAQ shows:
fullFileName = sprintf('C:/Users/Public/Videos/Sample Videos/pro/Newr/im%d.jpg',k);
imwrite(b,fullFileName);

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Image Processing Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by