| 437 | |
| 438 | |
| 439 | void FilterEngine::apply(const Mat& src, Mat& dst, |
| 440 | const Rect& _srcRoi, Point dstOfs, bool isolated) |
| 441 | { |
| 442 | CV_Assert( src.type() == srcType && dst.type() == dstType ); |
| 443 | |
| 444 | Rect srcRoi = _srcRoi; |
| 445 | if( srcRoi == Rect(0,0,-1,-1) ) |
| 446 | srcRoi = Rect(0,0,src.cols,src.rows); |
| 447 | |
| 448 | if( srcRoi.area() == 0 ) |
| 449 | return; |
| 450 | |
| 451 | CV_Assert( dstOfs.x >= 0 && dstOfs.y >= 0 && |
| 452 | dstOfs.x + srcRoi.width <= dst.cols && |
| 453 | dstOfs.y + srcRoi.height <= dst.rows ); |
| 454 | |
| 455 | int y = start(src, srcRoi, isolated); |
| 456 | proceed( src.data + y*src.step |
| 457 | + srcRoi.x*src.elemSize(), |
| 458 | (int)src.step, endY - startY, |
| 459 | dst.data + dstOfs.y*dst.step + |
| 460 | dstOfs.x*dst.elemSize(), (int)dst.step ); |
| 461 | } |
| 462 | |
| 463 | } |
| 464 |
no test coverage detected