find_calib_descriptor_modelT_find_calib_descriptor_modelFindCalibDescriptorModelFindCalibDescriptorModel (Operator)
Name
find_calib_descriptor_modelT_find_calib_descriptor_modelFindCalibDescriptorModelFindCalibDescriptorModel
— Suchen der besten Matches eines kalibrierten, Deskriptormodells
in einem Suchbild und Bestimmung seiner 3D-Lage (Pose).
Signatur
Herror T_find_calib_descriptor_model(const Hobject Image, const Htuple ModelID, const Htuple DetectorParamName, const Htuple DetectorParamValue, const Htuple DescriptorParamName, const Htuple DescriptorParamValue, const Htuple MinScore, const Htuple NumMatches, const Htuple CamParam, const Htuple ScoreType, Htuple* Pose, Htuple* Score)
void FindCalibDescriptorModel(const HObject& Image, const HTuple& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, const HTuple& MinScore, const HTuple& NumMatches, const HTuple& CamParam, const HTuple& ScoreType, HTuple* Pose, HTuple* Score)
HPoseArray HDescriptorModel::FindCalibDescriptorModel(const HImage& Image, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, const HTuple& MinScore, Hlong NumMatches, const HCamPar& CamParam, const HTuple& ScoreType, HTuple* Score) const
HPose HDescriptorModel::FindCalibDescriptorModel(const HImage& Image, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const HCamPar& CamParam, const HString& ScoreType, double* Score) const
HPose HDescriptorModel::FindCalibDescriptorModel(const HImage& Image, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const HCamPar& CamParam, const char* ScoreType, double* Score) const
HPose HDescriptorModel::FindCalibDescriptorModel(const HImage& Image, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const HCamPar& CamParam, const wchar_t* ScoreType, double* Score) const
(Nur Windows)
HPoseArray HImage::FindCalibDescriptorModel(const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, const HTuple& MinScore, Hlong NumMatches, const HCamPar& CamParam, const HTuple& ScoreType, HTuple* Score) const
HPose HImage::FindCalibDescriptorModel(const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const HCamPar& CamParam, const HString& ScoreType, double* Score) const
HPose HImage::FindCalibDescriptorModel(const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const HCamPar& CamParam, const char* ScoreType, double* Score) const
HPose HImage::FindCalibDescriptorModel(const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const HCamPar& CamParam, const wchar_t* ScoreType, double* Score) const
(Nur Windows)
HPoseArray HCamPar::FindCalibDescriptorModel(const HImage& Image, const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, const HTuple& MinScore, Hlong NumMatches, const HTuple& ScoreType, HTuple* Score) const
HPose HCamPar::FindCalibDescriptorModel(const HImage& Image, const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const HString& ScoreType, double* Score) const
HPose HCamPar::FindCalibDescriptorModel(const HImage& Image, const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const char* ScoreType, double* Score) const
HPose HCamPar::FindCalibDescriptorModel(const HImage& Image, const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const wchar_t* ScoreType, double* Score) const
(Nur Windows)
static HTuple HPose::FindCalibDescriptorModel(const HImage& Image, const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, const HTuple& MinScore, Hlong NumMatches, const HCamPar& CamParam, const HTuple& ScoreType, HPoseArray* Pose)
double HPose::FindCalibDescriptorModel(const HImage& Image, const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const HCamPar& CamParam, const HString& ScoreType)
double HPose::FindCalibDescriptorModel(const HImage& Image, const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const HCamPar& CamParam, const char* ScoreType)
double HPose::FindCalibDescriptorModel(const HImage& Image, const HDescriptorModel& ModelID, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, double MinScore, Hlong NumMatches, const HCamPar& CamParam, const wchar_t* ScoreType)
(Nur Windows)
static void HOperatorSet.FindCalibDescriptorModel(HObject image, HTuple modelID, HTuple detectorParamName, HTuple detectorParamValue, HTuple descriptorParamName, HTuple descriptorParamValue, HTuple minScore, HTuple numMatches, HTuple camParam, HTuple scoreType, out HTuple pose, out HTuple score)
HPose[] HDescriptorModel.FindCalibDescriptorModel(HImage image, HTuple detectorParamName, HTuple detectorParamValue, HTuple descriptorParamName, HTuple descriptorParamValue, HTuple minScore, int numMatches, HCamPar camParam, HTuple scoreType, out HTuple score)
HPose HDescriptorModel.FindCalibDescriptorModel(HImage image, HTuple detectorParamName, HTuple detectorParamValue, HTuple descriptorParamName, HTuple descriptorParamValue, double minScore, int numMatches, HCamPar camParam, string scoreType, out double score)
HPose[] HImage.FindCalibDescriptorModel(HDescriptorModel modelID, HTuple detectorParamName, HTuple detectorParamValue, HTuple descriptorParamName, HTuple descriptorParamValue, HTuple minScore, int numMatches, HCamPar camParam, HTuple scoreType, out HTuple score)
HPose HImage.FindCalibDescriptorModel(HDescriptorModel modelID, HTuple detectorParamName, HTuple detectorParamValue, HTuple descriptorParamName, HTuple descriptorParamValue, double minScore, int numMatches, HCamPar camParam, string scoreType, out double score)
HPose[] HCamPar.FindCalibDescriptorModel(HImage image, HDescriptorModel modelID, HTuple detectorParamName, HTuple detectorParamValue, HTuple descriptorParamName, HTuple descriptorParamValue, HTuple minScore, int numMatches, HTuple scoreType, out HTuple score)
HPose HCamPar.FindCalibDescriptorModel(HImage image, HDescriptorModel modelID, HTuple detectorParamName, HTuple detectorParamValue, HTuple descriptorParamName, HTuple descriptorParamValue, double minScore, int numMatches, string scoreType, out double score)
static HTuple HPose.FindCalibDescriptorModel(HImage image, HDescriptorModel modelID, HTuple detectorParamName, HTuple detectorParamValue, HTuple descriptorParamName, HTuple descriptorParamValue, HTuple minScore, int numMatches, HCamPar camParam, HTuple scoreType, out HPose[] pose)
double HPose.FindCalibDescriptorModel(HImage image, HDescriptorModel modelID, HTuple detectorParamName, HTuple detectorParamValue, HTuple descriptorParamName, HTuple descriptorParamValue, double minScore, int numMatches, HCamPar camParam, string scoreType)
Beschreibung
Der Operator find_calib_descriptor_modelfind_calib_descriptor_modelFindCalibDescriptorModelFindCalibDescriptorModelFindCalibDescriptorModel
sucht den besten
Match eines Deskriptormodells ModelIDModelIDModelIDModelIDmodelID
in
einem Suchbild ImageImageImageImageimage
. Ein Deskriptormodell
beinhaltet Beschreibungen von Merkmalspunkten und muss zuvor durch
create_calib_descriptor_modelcreate_calib_descriptor_modelCreateCalibDescriptorModelCreateCalibDescriptorModelCreateCalibDescriptorModel
erzeugt oder mit
read_descriptor_modelread_descriptor_modelReadDescriptorModelReadDescriptorModelReadDescriptorModel
eingelesen worden sein.
Die zurückgelieferte PosePosePosePosepose
ist die Pose (im
Kamera-Koordinatensystem) des gefundenen Musterobjekts im Suchbild
ImageImageImageImageimage
. Da für Modellgenerierung und Suche unterschiedliche
Kameras verwendet werden können, müssen die Kameraparameter der
'Suchkamera' in CamParamCamParamCamParamCamParamcamParam
übergeben werden.
Der Suchprozess ist derselbe wie in find_uncalib_descriptor_modelfind_uncalib_descriptor_modelFindUncalibDescriptorModelFindUncalibDescriptorModelFindUncalibDescriptorModel
.
Die Einstellungen für DetectorParamNameDetectorParamNameDetectorParamNameDetectorParamNamedetectorParamName
,
DetectorParamValueDetectorParamValueDetectorParamValueDetectorParamValuedetectorParamValue
, DescriptorParamNameDescriptorParamNameDescriptorParamNameDescriptorParamNamedescriptorParamName
,
DescriptorParamValueDescriptorParamValueDescriptorParamValueDescriptorParamValuedescriptorParamValue
, MinScoreMinScoreMinScoreMinScoreminScore
,
NumMatchesNumMatchesNumMatchesNumMatchesnumMatches
und ScoreTypeScoreTypeScoreTypeScoreTypescoreType
sind beim Operator
find_uncalib_descriptor_modelfind_uncalib_descriptor_modelFindUncalibDescriptorModelFindUncalibDescriptorModelFindUncalibDescriptorModel
beschrieben. Wenn ein Objekt gefunden
wird, werden die korrespondierenden Modell- und Suchpunkte intern an
vector_to_posevector_to_poseVectorToPoseVectorToPoseVectorToPose
übergeben, um die Pose des Objekts zu bestimmen.
Wie beim Operator create_calib_descriptor_modelcreate_calib_descriptor_modelCreateCalibDescriptorModelCreateCalibDescriptorModelCreateCalibDescriptorModel
beschrieben, werden
die Modellpunkte davor in Weltkoordinaten der Modellebene umgerechnet.
Die gefundenen Punktkorrespondenzen einzelner Instanzen können mit Hilfe
des Operators get_descriptor_model_pointsget_descriptor_model_pointsGetDescriptorModelPointsGetDescriptorModelPointsGetDescriptorModelPoints
abgefragt werden.
Achtung
Der Definitionsbereich des Suchbildes sollte das gesamte gesuchte
Objekt enthalten, da die Merkmalspunkte nur innerhalb des
Definitionsbereiches des Suchbildes extrahiert werden. Das bedeutet,
dass der resultierende ScoreScoreScoreScorescore
entsprechend kleiner wird, wenn
der Definitionsbereich nicht das gesamte gesuchte Objekt enthält.
Des Weiteren ist zu beachten, dass Matches auch dann zurück gegeben
werden, wenn der Referenzpunkt des Modells außerhalb des
Definitionsbereiches des Suchbildes liegt. Die beiden hier
geschilderten Auswirkungen des Definitionsbereiches des Suchbildes
unterscheiden sich grundsätzlich von der Auswirkung des
Definitionsbereiches beim formbasierten Matching, wo der
Definitionsbereich den Suchraum für den Referenzpunkt des Modells
darstellt.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
ImageImageImageImageimage
(input_object) singlechannelimage →
objectHImageHImageHobject (byte / uint2)
Das Suchbild.
ModelIDModelIDModelIDModelIDmodelID
(input_control) descriptor_model →
HDescriptorModel, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Der Handle des Deskriptormodells.
DetectorParamNameDetectorParamNameDetectorParamNameDetectorParamNamedetectorParamName
(input_control) attribute.name-array →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Namen der Parameter des Detektors.
Defaultwert: []
Werteliste: 'alpha'"alpha""alpha""alpha""alpha", 'check_neighbor'"check_neighbor""check_neighbor""check_neighbor""check_neighbor", 'mask_size_grd'"mask_size_grd""mask_size_grd""mask_size_grd""mask_size_grd", 'mask_size_smooth'"mask_size_smooth""mask_size_smooth""mask_size_smooth""mask_size_smooth", 'min_check_neighbor_diff'"min_check_neighbor_diff""min_check_neighbor_diff""min_check_neighbor_diff""min_check_neighbor_diff", 'min_score'"min_score""min_score""min_score""min_score", 'radius'"radius""radius""radius""radius", 'sigma_grad'"sigma_grad""sigma_grad""sigma_grad""sigma_grad", 'sigma_smooth'"sigma_smooth""sigma_smooth""sigma_smooth""sigma_smooth", 'subpix'"subpix""subpix""subpix""subpix", 'threshold'"threshold""threshold""threshold""threshold"
DetectorParamValueDetectorParamValueDetectorParamValueDetectorParamValuedetectorParamValue
(input_control) attribute.value-array →
HTupleHTupleHtuple (integer / real / string) (int / long / double / string) (Hlong / double / HString) (Hlong / double / char*)
Werte der Detektor-Parameter.
Defaultwert: []
Wertevorschläge: 0.08, 1, 1.2, 3, 15, 30, 1000, 'on'"on""on""on""on", 'off'"off""off""off""off"
DescriptorParamNameDescriptorParamNameDescriptorParamNameDescriptorParamNamedescriptorParamName
(input_control) attribute.name-array →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Namen der Deskriptor-Parameter.
Defaultwert: []
Werteliste: 'guided_matching'"guided_matching""guided_matching""guided_matching""guided_matching", 'min_score_descr'"min_score_descr""min_score_descr""min_score_descr""min_score_descr"
DescriptorParamValueDescriptorParamValueDescriptorParamValueDescriptorParamValuedescriptorParamValue
(input_control) attribute.value-array →
HTupleHTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
Werte der Deskriptor-Parameter.
Defaultwert: []
Wertevorschläge: 0.0, 0.001, 0.005, 0.01, 'on'"on""on""on""on", 'off'"off""off""off""off"
MinScoreMinScoreMinScoreMinScoreminScore
(input_control) real(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Minimale Bewertung der zu findenden Instanzen
der Modelle.
Defaultwert: 0.2
Wertevorschläge: 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Typischer Wertebereich: 0
≤
MinScore
MinScore
MinScore
MinScore
minScore
≤
1
NumMatchesNumMatchesNumMatchesNumMatchesnumMatches
(input_control) integer →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Maximale Anzahl von gefundenen Instanzen.
Defaultwert: 1
Wertevorschläge: 1, 2, 3, 4
Restriktion: NumMatches >= 1
CamParamCamParamCamParamCamParamcamParam
(input_control) campar →
HCamPar, HTupleHTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
Kamera Parameter (innere Orientierung) aus
Kamerakalibrierung.
ScoreTypeScoreTypeScoreTypeScoreTypescoreType
(input_control) string(-array) →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Bewertungstyp berechnet in ScoreScoreScoreScorescore
.
Defaultwert:
'num_points'
"num_points"
"num_points"
"num_points"
"num_points"
Werteliste: 'inlier_ratio'"inlier_ratio""inlier_ratio""inlier_ratio""inlier_ratio", 'num_points'"num_points""num_points""num_points""num_points"
PosePosePosePosepose
(output_control) pose(-array) →
HPose, HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
3D Pose des Objekts.
ScoreScoreScoreScorescore
(output_control) number(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Bewertung der gefundenen Instanzen gemäß
ausgewählten ScoreType.
Beispiel (HDevelop)
* Perform camera calibration (with standard calibration plate)
calibrate_cameras (CalibDataID, Error)
get_calib_data (CalibDataID, 'camera', 0, 'params', CamParam)
* World coordinate system is defined by calibration plate in first image
get_calib_data (CalibDataID, 'calib_obj_pose', [0,0], 'pose', \
ObjInCameraPose)
* Compensate thickness of plate
set_origin_pose(ObjInCameraPose, 0, 0, 0.0006, WorldPose)
* Create descriptor model:
create_calib_descriptor_model (Image,CamParam,WorldPose, \
'harris',[],[],[],[],42,ModelID)
get_descriptor_model_params (ModelID,DetectorType, \
DetectorParamName,DetectorParamValue, \
DescriptorParamName,DescriptorParamValue)
write_descriptor_model (ModelID,'simple_example.dsm')
read_descriptor_model ('simple_example.dsm',ModelID)
find_calib_descriptor_model (SearchImage,ModelID,[],[],[],[],0.2,1, \
CamParam,['num_points','inlier_ratio'], \
Pose,Score)
Vorgänger
create_calib_descriptor_modelcreate_calib_descriptor_modelCreateCalibDescriptorModelCreateCalibDescriptorModelCreateCalibDescriptorModel
,
read_descriptor_modelread_descriptor_modelReadDescriptorModelReadDescriptorModelReadDescriptorModel
Siehe auch
vector_to_posevector_to_poseVectorToPoseVectorToPoseVectorToPose
,
points_lepetitpoints_lepetitPointsLepetitPointsLepetitPointsLepetit
,
create_calib_descriptor_modelcreate_calib_descriptor_modelCreateCalibDescriptorModelCreateCalibDescriptorModelCreateCalibDescriptorModel
Modul
Matching