Azzera filtri
Azzera filtri

Crop an image using coordinates

4 visualizzazioni (ultimi 30 giorni)
Anonymous26
Anonymous26 il 2 Nov 2019
Modificato: Anonymous26 il 27 Nov 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 Commenti
darova
darova il 2 Nov 2019
you have data (x,y) or only image (pixels)?
Anonymous26
Anonymous26 il 2 Nov 2019
I only have the image.

Accedi per commentare.

Risposta accettata

Image Analyst
Image Analyst il 2 Nov 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 Commenti
Image Analyst
Image Analyst il 4 Nov 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 il 8 Nov 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!

Accedi per commentare.

Più risposte (1)

darova
darova il 2 Nov 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 Commenti
Anonymous26
Anonymous26 il 3 Nov 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 il 3 Nov 2019
Do you like my idea?

Accedi per commentare.

Categorie

Scopri di più su Image Processing Toolbox in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by