Skip to content

objc bindings generator generates conflicting swift method names #25926

@yeatse

Description

@yeatse

System Information

OpenCV version: 4.10.0
Operating System / Platform: iOS / macOS
Compiler & compiler version: Xcode 15.4

Detailed description

I’m using OpenCV in my Swift project. After upgrading to OpenCV 4.10.0, I encountered compilation errors due to conflicting method names generated by the Objective-C bindings.

Specifically, both +[Calib3d solvePnP:...] and +[Calib3d fisheye_solvePnP:...] are translated into the same Swift method signature solvePnP(objectPoints:...), leading to the following compiler error:

Ambiguous use of 'solvePnP(objectPoints:imagePoints:cameraMatrix:distCoeffs:rvec:tvec:)'

Steps to reproduce

import opencv2

let mat = Mat()
Calib3d.solvePnP(objectPoints: mat, imagePoints: mat, cameraMatrix: mat, distCoeffs: mat, rvec: mat, tvec: mat)

Issue submission checklist

  • I report the issue, it's not a question
  • I checked the problem with documentation, FAQ, open issues, forum.opencv.org, Stack Overflow, etc and have not found any solution
  • I updated to the latest OpenCV version and the issue is still there
  • There is reproducer code and related data files (videos, images, onnx, etc)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions