How can I crop rectangles from an image?

5 views (last 30 days)
Hello, I am trying, given an image that contains a grid, to detect it in some way to later be able to crop it and keep it, in my case it is an electrocardiogram, I attach image.
I tried apply regionprops, hough, etc.
Thanks in advance!
  1 Comment
DGM
DGM on 18 Jan 2023
What are the actual goals?
Do you just need to process this one image, or do you need a method to automatically process any image printed in the same manner?
What all do you actually need to do with the image?
  • crop the region?
  • correct for perspective/barrel distortion?
  • back-calculate the actual signal vectors?

Sign in to comment.

Accepted Answer

DGM
DGM on 18 Jan 2023
If I were to answer the question as asked:
inpict = imread('image.jpeg');
% get mask selecting red lines
yccpict = rgb2ycbcr(inpict);
limits = [50 200; 0 255; 135 153];
limits = permute(limits,[2 3 1]);
mask = all(yccpict >= limits(1,:,:) & yccpict <= limits(2,:,:),3);
% get rid of stray blobs
mask = bwareafilt(mask,1);
% get blob location, crop image
S = regionprops(mask,'boundingbox');
outpict = imcrop(inpict,S.BoundingBox);
imshow(outpict)
  5 Comments
Image Analyst
Image Analyst on 18 Jan 2023
I can think of lots of ways to approach this but none of them are going to be quick and easy. Nothing in a page full of code. For starters assume that the paper is on a consistent background. Then try to identify the background characteristics (color and texture) and segment that out. Then take the inside (the chart) and find the corners and warp it. Some attached demos and web sites might help.
Ismael Raqi Picardo
Ismael Raqi Picardo on 19 Jan 2023
Oh okay, im gonna try that, thank you very much!

Sign in to comment.

More Answers (0)

Categories

Find more on Image Processing Toolbox 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!