Borrar filtros
Borrar filtros

cropping a serie of images and save only the cropped part of it

1 visualización (últimos 30 días)
Hi guys, I would be grateful if someone kindly could help me with this.
I have a serie of frames of the same image (.tif). I would like to load all the images (they become matrixes 2000*2000) from the folder and crop all of them with the same pattern (I dont know the coordinates of cropping so I would like to be allowed to choose a rectangular square in one of them and apply it to all). Then I would like to save them in a new folder in the same path.
clc;
clear;
close all;
% cd('C:\Users\...\OT pics')
% Sample
dirName = uigetdir('./', 'Select data folder');
cd(dirName);
for i=484:487
image_{i}=imread(sprintf('SI380820191011130728_%03d.tif',i));
[J,rect]=imcrop(image_{i})
[x,y]=size(image_{i});
X=1:x;
Y=1:y;
[xx,yy]=meshgrid(Y,X);
figure;imshow([J,rect])
colormap (jet)
colorbar
caxis([0 45000]);
axis on
fullFileName = fullfile('C:\Users\..\OT pics\new', [J,rect]);
saveas(mfig,fullFileName);
end
This is the script i have been using but it gives back this error. Anyone helping? Thanks a lot
Error using horzcat
Dimensions of arrays being concatenated are not consistent.
Error in Untitled2 (line 43)
figure;imshow([J,rect])
  4 comentarios
Murstoe
Murstoe el 3 de Abr. de 2020
thanks a lot. However, now it let me choose a rectangle for every of the 4 pics. is it possible to automatically apply the cropping to all the 4 pictures?
....
image_{i}=imread(sprintf('SI380820191011130728_%03d.tif',i));
J=imcrop(image_{i})
[x,y]=size(image_{i});
X=1:x;
Y=1:y;
[xx,yy]=meshgrid(Y,X);
figure;imshow(J)
...

Iniciar sesión para comentar.

Respuesta aceptada

darova
darova el 3 de Abr. de 2020
Tri this (not tested)
dirName = uigetdir('./', 'Select data folder');
cd(dirName);
fname = sprintf('SI380820191011130728_%03d.tif',1)
image_{i} = imread(str);
[J,rect] = imcrop(image_{i})
for i = 2:487
fname = sprintf('SI380820191011130728_%03d.tif',i)
image_{i} = imread(str);
J = imcrop(image_{i},rect)
[x,y] = size(image_{i});
X=1:x;
Y=1:y;
[xx,yy]=meshgrid(Y,X);
figure
imshow(J)
colormap (jet)
colorbar
caxis([0 45000]);
axis on
fullFileName = fullfile('C:\Users\..\OT pics\new', [str num2str(i)]);
imwrite(J,fullFileName)
end
  3 comentarios
darova
darova el 3 de Abr. de 2020
I believe i made a mistake.(never happened before)
darova
darova el 3 de Abr. de 2020
please change according to this

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Red en Help Center y File Exchange.

Productos


Versión

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by