Crop an image using coordinates

8 visualizaciones (últimos 30 días)
Anonymous26
Anonymous26 el 2 de Nov. de 2019
Editada: Anonymous26 el 27 de Nov. de 2019
I am getting a grid for an image using vertical projection.
I want to crop the image part, within the 2 of the points as one cropping image.
Can someone advice me on this?
Thanks!
  4 comentarios
darova
darova el 2 de Nov. de 2019
you have data (x,y) or only image (pixels)?
Anonymous26
Anonymous26 el 2 de Nov. de 2019
I only have the image.

Iniciar sesión para comentar.

Respuesta aceptada

Image Analyst
Image Analyst el 2 de Nov. de 2019
I would use regionprops() to find the start and stop of each non-zero segment, then crop. Something like (untested)
props = regionprops(verticalProfile, 'PixelIdxList');
for k = 1 : length(props)
row1 = props(k).PixelIdxList(1, 1)
row2 = props(k).PixelIdxList(1, end)
croppedImage = grayImage(row1:row2, :)
imshow(croppedImage);
drawnow;
end
  11 comentarios
Image Analyst
Image Analyst el 4 de Nov. de 2019
It should only get to that line if it's an RGB image. What does this say?
ndims(grayImage)
whos grayImage
[rows, columns, numberOfColorChannels] = size(grayImage)
Don't use semicolons and look to see what it reports to the command window.
Anonymous26
Anonymous26 el 8 de Nov. de 2019
Thank you so much for your support. I made some modifications in the code and made it work, according to my need.
Thanks a lot again!

Iniciar sesión para comentar.

Más respuestas (1)

darova
darova el 2 de Nov. de 2019
Here is an attempt
clc,clear
I = imread('Capture.jpeg');
I1 = im2bw(I); % convert to binary
I2 = bwareaopen(~I1,100); % remove numbers (small areas)
[row,col] = find(I2);
I3 = I2*0;
h = 1; % crop thickness
ii = row(1)+h:row(end)-h;
jj = col(1)+h:col(end)-h;
I3(ii,jj) = I2(ii,jj); % crop
I4 = bwareaopen(I3,200); % remove small areas
[L,n] = bwlabel(I4); % label image
for i = 1:4
subplot(2,2,i)
I5 = L == i; % find part of a curve
I6 = imdilate(I5,ones(5)); % highlight the part
II = cat(3,~I6,I1,I1)*255;
imshow(II) % show original image and part of a curve
end
im assuming the original image has no those circles
1Capture.jpg
  2 comentarios
Anonymous26
Anonymous26 el 3 de Nov. de 2019
My image is not the attached one. That is the gride i got for the original image.
After getting that gride only i am trying to crop the image using the y = 0 points.
darova
darova el 3 de Nov. de 2019
Do you like my idea?

Iniciar sesión para comentar.

Categorías

Más información sobre Image Processing Toolbox en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by