Skip to content

Add warpAffine and resizeDown APIs in FastCV Extension #3936

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jun 9, 2025

Conversation

quic-apreetam
Copy link
Contributor

@quic-apreetam quic-apreetam commented May 15, 2025

  • Added warpAffine function to apply affine transformations.
    2x3 affine transformations for both CV_8UC1 and CV_8UC3 input
    2x2 matrix-based patch extraction for grayscale images, with ROI.

  • Deprecated resizeDownBy2 and resizeDownBy4 functions.

  • Introduced resizeDown function to down-scale images using specified scaling factors or dimensions, supporting both single-channel (CV_8UC1) and two-channel (CV_8UC2) images.

Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

  • I agree to contribute to the project under Apache 2 License.
  • To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
  • The PR is proposed to the proper branch
  • There is a reference to the original bug report and related work
  • There is accuracy test, performance test and test data in opencv_extra repository, if applicable
    Patch to opencv_extra has the same branch name.
  • The feature is well documented and sample code can be built with the project CMake

@quic-apreetam
Copy link
Contributor Author

hi @asmorkalov, i think we don't need dummy PR for this

*
* @return Returns 0 if the transformation is valid.
*/
CV_EXPORTS_W void warpAffineROI(InputArray _src, const cv::Point2f& position, InputArray _affine, OutputArray _patch, Size patchSize);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Technically, the API is redundant. OpenCV cv::Mat has locateRoi method that may extract details of the original matrix, if roi is provided as a parameter. You can just handle the case in existing warpAffine.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in warpAffineROI, we use fcvTransformAffineu8_v2 which uses 2x2 Affine transformation and also uses fixed point precision, that's why it was added separately

@asmorkalov asmorkalov self-assigned this Jun 6, 2025
@quic-apreetam
Copy link
Contributor Author

@asmorkalov unified warpAffine, warpAffine3Channel, and warpAffineROI into a single warpAffine function

@asmorkalov asmorkalov merged commit 1e4d4e0 into opencv:4.x Jun 9, 2025
11 of 13 checks passed
@asmorkalov asmorkalov mentioned this pull request Jun 11, 2025
dbouron pushed a commit to criteo-forks/opencv_contrib that referenced this pull request Jun 23, 2025
Add warpAffine and resizeDown APIs in FastCV Extension opencv#3936

- Added warpAffine function to apply affine transformations.
2x3 affine transformations for both CV_8UC1 and CV_8UC3 input
2x2 matrix-based patch extraction for grayscale images, with ROI.

- Deprecated resizeDownBy2 and resizeDownBy4 functions.
- Introduced resizeDown function to down-scale images using specified scaling factors or dimensions, supporting both single-channel (CV_8UC1) and two-channel (CV_8UC2) images.

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [ ] The PR is proposed to the proper branch
- [ ] There is a reference to the original bug report and related work
- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [ ] The feature is well documented and sample code can be built with the project CMake
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants