mirror of
https://github.com/opencv/opencv.git
synced 2026-07-29 07:13:02 +04:00
Merge pull request #8244 from sovrasov:adjust_roi_fix
This commit is contained in:
@@ -997,8 +997,13 @@ Mat& Mat::adjustROI( int dtop, int dbottom, int dleft, int dright )
|
||||
Size wholeSize; Point ofs;
|
||||
size_t esz = elemSize();
|
||||
locateROI( wholeSize, ofs );
|
||||
int row1 = std::max(ofs.y - dtop, 0), row2 = std::min(ofs.y + rows + dbottom, wholeSize.height);
|
||||
int col1 = std::max(ofs.x - dleft, 0), col2 = std::min(ofs.x + cols + dright, wholeSize.width);
|
||||
int row1 = std::min(std::max(ofs.y - dtop, 0), wholeSize.height), row2 = std::max(0, std::min(ofs.y + rows + dbottom, wholeSize.height));
|
||||
int col1 = std::min(std::max(ofs.x - dleft, 0), wholeSize.width), col2 = std::max(0, std::min(ofs.x + cols + dright, wholeSize.width));
|
||||
if(row1 > row2)
|
||||
std::swap(row1, row2);
|
||||
if(col1 > col2)
|
||||
std::swap(col1, col2);
|
||||
|
||||
data += (row1 - ofs.y)*step + (col1 - ofs.x)*esz;
|
||||
rows = row2 - row1; cols = col2 - col1;
|
||||
size.p[0] = rows; size.p[1] = cols;
|
||||
|
||||
Reference in New Issue
Block a user