Issue
Given an image Mat
, and a contour (which is a MatOfPoint
) in it, how can I create a ROI (Region Of Interest)/submat?
I can see three interesting methods on docs of Mat
,
Mat submat(int rowStart, int rowEnd, int colStart, int colEnd) Extracts a rectangular submatrix.
Mat submat(Range rowRange, Range colRange) Extracts a rectangular submatrix.
Mat submat(Rect roi) Extracts a rectangular submatrix.
- Is there a way to find out
rowStart
,rowEnd
,colStart
andcolEnd
from the contour?
or
- Is there a way to get
rowRange
andcolRange
from the contour?
or
- Can I make a
Rect
from the contour?
Solution
Use Imgproc.boundingRect(MatOfPoint contour)
method. This way you can use the third of the submat()
methods you have listed:
Rect roiRect = Imgproc.boundingRect(contour);
Mat roiSubmat = originalMat.submat(roiRect);
roiSubmat
is your region of interest (stored in a Mat).
Answered By - NXA
Answer Checked By - Marie Seifert (JavaFixing Admin)