How can I crop rectangles from an image?

3 ビュー (過去 30 日間)
Ismael Raqi Picardo
Ismael Raqi Picardo 2023 年 1 月 17 日
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 件のコメント
DGM
DGM 2023 年 1 月 18 日
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?

サインインしてコメントする。

採用された回答

DGM
DGM 2023 年 1 月 18 日
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 件のコメント
Image Analyst
Image Analyst 2023 年 1 月 18 日
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 2023 年 1 月 19 日
Oh okay, im gonna try that, thank you very much!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeImages についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by