0
openCVのdecomposeHomographyMat
機能を使用しようとしています。私はスウィフトの人ですが、そのためにObjective Cの不思議な言葉を使用しました。関数のシグネチャは、私は、両方の9つの要素それぞれとNSArray<NSNumber*> *_Nonnull
された入力KとHをしたObjective CのOpenCV decomposeHomographyMatを使用してください
cv::decomposeHomographyMat(
<#InputArray H#>,
<#InputArray K#>,
<#OutputArrayOfArrays rotations#>,
<#OutputArrayOfArrays translations#>,
<#OutputArrayOfArrays normals#>
)
あります。
は、どのように私は期待InputArray
とOutputArrayOfArrays
を作成することができ、そしてどのように私はタイプのObjective CへOutputArrayOfArrays
バックが迅速に渡すことができます変換するのですか? cv::decomposeHomographyMat
を呼び出すとき
===編集===
クアンの答えをしようとは墜落:
OpenCV Error: Assertion failed (0 <= i && i < (int)vv.size()) in getMat_,
file .../opencv/modules/core/src/matrix.cpp, line 1287
コードです:
+ (nullable NSArray<NSNumber*> *) decomposeHomography:(NSArray<NSNumber*> *_Nonnull) homography intrisics:(NSArray<NSNumber*> *_Nonnull) intrisics
{
cv::Mat rotations, translations, normals;
vector<vector<float> > H(3,vector<float>(3));
for (int i = 0; i<3; ++i){
for (int j = 0; j<3; ++j){
H[i][j] = [homography[i*3 + j] floatValue];
}
}
vector<vector<float> > K(3,vector<float>(3));
for (int i = 0; i<3; ++i){
for (int j = 0; j<3; ++j){
K[i][j] = [intrisics[i*3 + j] floatValue];
}
}
cv::decomposeHomographyMat(
H,
K,
rotations,
translations,
normals
);
NSLog(@"ok");
}
残念ながら、クラッシュします。私は私の答えを編集しました。 – Guig
回転、平行移動、法線に 'std :: vector 'を使用する。 H、KのためのMatがあります。正しい方向に私を入れてくれてありがとう –
Guig