24 #include <interfaces/OpenCVStereoParamsInterface.h>
26 #include <core/exceptions/software.h>
47 OpenCVStereoParamsInterface::OpenCVStereoParamsInterface() : Interface()
49 data_size =
sizeof(OpenCVStereoParamsInterface_data_t);
50 data_ptr = malloc(data_size);
51 data = (OpenCVStereoParamsInterface_data_t *)data_ptr;
52 data_ts = (interface_data_ts_t *)data_ptr;
53 memset(data_ptr, 0, data_size);
54 enum_map_PreFilterType[(int)PFT_NORMALIZED_RESPONSE] =
"PFT_NORMALIZED_RESPONSE";
55 enum_map_PreFilterType[(int)PFT_XSOBEL] =
"PFT_XSOBEL";
56 add_fieldinfo(IFT_ENUM,
"pre_filter_type", 1, &data->pre_filter_type,
"PreFilterType", &enum_map_PreFilterType);
57 add_fieldinfo(IFT_UINT32,
"pre_filter_size", 1, &data->pre_filter_size);
58 add_fieldinfo(IFT_UINT32,
"pre_filter_cap", 1, &data->pre_filter_cap);
59 add_fieldinfo(IFT_UINT32,
"sad_window_size", 1, &data->sad_window_size);
60 add_fieldinfo(IFT_INT32,
"min_disparity", 1, &data->min_disparity);
61 add_fieldinfo(IFT_UINT32,
"num_disparities", 1, &data->num_disparities);
62 add_fieldinfo(IFT_UINT32,
"texture_threshold", 1, &data->texture_threshold);
63 add_fieldinfo(IFT_UINT32,
"uniqueness_ratio", 1, &data->uniqueness_ratio);
64 add_fieldinfo(IFT_UINT32,
"speckle_window_size", 1, &data->speckle_window_size);
65 add_fieldinfo(IFT_UINT32,
"speckle_range", 1, &data->speckle_range);
66 add_fieldinfo(IFT_BOOL,
"try_smaller_windows", 1, &data->try_smaller_windows);
67 add_messageinfo(
"SetPreFilterTypeMessage");
68 add_messageinfo(
"SetPreFilterSizeMessage");
69 add_messageinfo(
"SetPreFilterCapMessage");
70 add_messageinfo(
"SetSADWindowSizeMessage");
71 add_messageinfo(
"SetMinDisparityMessage");
72 add_messageinfo(
"SetNumDisparitiesMessage");
73 add_messageinfo(
"SetTextureThresholdMessage");
74 add_messageinfo(
"SetUniquenessRatioMessage");
75 add_messageinfo(
"SetSpeckleWindowSizeMessage");
76 add_messageinfo(
"SetSpeckleRangeMessage");
77 add_messageinfo(
"SetTrySmallerWindowsMessage");
78 unsigned char tmp_hash[] = {0x3a, 0x8e, 0x8c, 0x21, 0xea, 0x8c, 0x83, 0x29, 0x91, 0xdd, 0x5f, 0x5f, 0x16, 0xbf, 0x5f, 0xa6};
83 OpenCVStereoParamsInterface::~OpenCVStereoParamsInterface()
92 OpenCVStereoParamsInterface::tostring_PreFilterType(PreFilterType value)
const
95 case PFT_NORMALIZED_RESPONSE:
return "PFT_NORMALIZED_RESPONSE";
96 case PFT_XSOBEL:
return "PFT_XSOBEL";
97 default:
return "UNKNOWN";
105 OpenCVStereoParamsInterface::PreFilterType
106 OpenCVStereoParamsInterface::pre_filter_type()
const
108 return (OpenCVStereoParamsInterface::PreFilterType)data->pre_filter_type;
116 OpenCVStereoParamsInterface::maxlenof_pre_filter_type()
const
126 OpenCVStereoParamsInterface::set_pre_filter_type(
const PreFilterType new_pre_filter_type)
128 data->pre_filter_type = new_pre_filter_type;
139 OpenCVStereoParamsInterface::pre_filter_size()
const
141 return data->pre_filter_size;
149 OpenCVStereoParamsInterface::maxlenof_pre_filter_size()
const
161 OpenCVStereoParamsInterface::set_pre_filter_size(
const uint32_t new_pre_filter_size)
163 data->pre_filter_size = new_pre_filter_size;
174 OpenCVStereoParamsInterface::pre_filter_cap()
const
176 return data->pre_filter_cap;
184 OpenCVStereoParamsInterface::maxlenof_pre_filter_cap()
const
196 OpenCVStereoParamsInterface::set_pre_filter_cap(
const uint32_t new_pre_filter_cap)
198 data->pre_filter_cap = new_pre_filter_cap;
209 OpenCVStereoParamsInterface::sad_window_size()
const
211 return data->sad_window_size;
219 OpenCVStereoParamsInterface::maxlenof_sad_window_size()
const
231 OpenCVStereoParamsInterface::set_sad_window_size(
const uint32_t new_sad_window_size)
233 data->sad_window_size = new_sad_window_size;
242 OpenCVStereoParamsInterface::min_disparity()
const
244 return data->min_disparity;
252 OpenCVStereoParamsInterface::maxlenof_min_disparity()
const
262 OpenCVStereoParamsInterface::set_min_disparity(
const int32_t new_min_disparity)
264 data->min_disparity = new_min_disparity;
275 OpenCVStereoParamsInterface::num_disparities()
const
277 return data->num_disparities;
285 OpenCVStereoParamsInterface::maxlenof_num_disparities()
const
297 OpenCVStereoParamsInterface::set_num_disparities(
const uint32_t new_num_disparities)
299 data->num_disparities = new_num_disparities;
311 OpenCVStereoParamsInterface::texture_threshold()
const
313 return data->texture_threshold;
321 OpenCVStereoParamsInterface::maxlenof_texture_threshold()
const
334 OpenCVStereoParamsInterface::set_texture_threshold(
const uint32_t new_texture_threshold)
336 data->texture_threshold = new_texture_threshold;
349 OpenCVStereoParamsInterface::uniqueness_ratio()
const
351 return data->uniqueness_ratio;
359 OpenCVStereoParamsInterface::maxlenof_uniqueness_ratio()
const
373 OpenCVStereoParamsInterface::set_uniqueness_ratio(
const uint32_t new_uniqueness_ratio)
375 data->uniqueness_ratio = new_uniqueness_ratio;
386 OpenCVStereoParamsInterface::speckle_window_size()
const
388 return data->speckle_window_size;
396 OpenCVStereoParamsInterface::maxlenof_speckle_window_size()
const
408 OpenCVStereoParamsInterface::set_speckle_window_size(
const uint32_t new_speckle_window_size)
410 data->speckle_window_size = new_speckle_window_size;
421 OpenCVStereoParamsInterface::speckle_range()
const
423 return data->speckle_range;
431 OpenCVStereoParamsInterface::maxlenof_speckle_range()
const
443 OpenCVStereoParamsInterface::set_speckle_range(
const uint32_t new_speckle_range)
445 data->speckle_range = new_speckle_range;
457 OpenCVStereoParamsInterface::is_try_smaller_windows()
const
459 return data->try_smaller_windows;
467 OpenCVStereoParamsInterface::maxlenof_try_smaller_windows()
const
480 OpenCVStereoParamsInterface::set_try_smaller_windows(
const bool new_try_smaller_windows)
482 data->try_smaller_windows = new_try_smaller_windows;
488 OpenCVStereoParamsInterface::create_message(
const char *type)
const
490 if ( strncmp(
"SetPreFilterTypeMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
492 }
else if ( strncmp(
"SetPreFilterSizeMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
494 }
else if ( strncmp(
"SetPreFilterCapMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
495 return new SetPreFilterCapMessage();
496 }
else if ( strncmp(
"SetSADWindowSizeMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
497 return new SetSADWindowSizeMessage();
498 }
else if ( strncmp(
"SetMinDisparityMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
499 return new SetMinDisparityMessage();
500 }
else if ( strncmp(
"SetNumDisparitiesMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
501 return new SetNumDisparitiesMessage();
502 }
else if ( strncmp(
"SetTextureThresholdMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
503 return new SetTextureThresholdMessage();
504 }
else if ( strncmp(
"SetUniquenessRatioMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
505 return new SetUniquenessRatioMessage();
506 }
else if ( strncmp(
"SetSpeckleWindowSizeMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
507 return new SetSpeckleWindowSizeMessage();
508 }
else if ( strncmp(
"SetSpeckleRangeMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
509 return new SetSpeckleRangeMessage();
510 }
else if ( strncmp(
"SetTrySmallerWindowsMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
511 return new SetTrySmallerWindowsMessage();
513 throw UnknownTypeException(
"The given type '%s' does not match any known "
514 "message type for this interface type.", type);
523 OpenCVStereoParamsInterface::copy_values(
const Interface *other)
525 const OpenCVStereoParamsInterface *oi =
dynamic_cast<const OpenCVStereoParamsInterface *
>(other);
527 throw TypeMismatchException(
"Can only copy values from interface of same type (%s vs. %s)",
528 type(), other->type());
530 memcpy(data, oi->data,
sizeof(OpenCVStereoParamsInterface_data_t));
534 OpenCVStereoParamsInterface::enum_tostring(
const char *enumtype,
int val)
const
536 if (strcmp(enumtype,
"PreFilterType") == 0) {
537 return tostring_PreFilterType((PreFilterType)val);
539 throw UnknownTypeException(
"Unknown enum type %s", enumtype);
553 OpenCVStereoParamsInterface::SetPreFilterTypeMessage::SetPreFilterTypeMessage(
const PreFilterType ini_pre_filter_type) :
Message(
"SetPreFilterTypeMessage")
555 data_size =
sizeof(SetPreFilterTypeMessage_data_t);
558 data = (SetPreFilterTypeMessage_data_t *)
data_ptr;
560 data->pre_filter_type = ini_pre_filter_type;
562 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
563 add_fieldinfo(
IFT_ENUM,
"pre_filter_type", 1, &data->pre_filter_type,
"PreFilterType", &enum_map_PreFilterType);
568 data_size =
sizeof(SetPreFilterTypeMessage_data_t);
571 data = (SetPreFilterTypeMessage_data_t *)
data_ptr;
574 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
575 add_fieldinfo(
IFT_ENUM,
"pre_filter_type", 1, &data->pre_filter_type,
"PreFilterType", &enum_map_PreFilterType);
592 data = (SetPreFilterTypeMessage_data_t *)
data_ptr;
624 data->pre_filter_type = new_pre_filter_type;
649 data_size =
sizeof(SetPreFilterSizeMessage_data_t);
652 data = (SetPreFilterSizeMessage_data_t *)
data_ptr;
654 data->pre_filter_size = ini_pre_filter_size;
656 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
662 data_size =
sizeof(SetPreFilterSizeMessage_data_t);
665 data = (SetPreFilterSizeMessage_data_t *)
data_ptr;
668 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
686 data = (SetPreFilterSizeMessage_data_t *)
data_ptr;
700 return data->pre_filter_size;
722 data->pre_filter_size = new_pre_filter_size;
747 data_size =
sizeof(SetPreFilterCapMessage_data_t);
750 data = (SetPreFilterCapMessage_data_t *)
data_ptr;
752 data->pre_filter_cap = ini_pre_filter_cap;
754 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
760 data_size =
sizeof(SetPreFilterCapMessage_data_t);
763 data = (SetPreFilterCapMessage_data_t *)
data_ptr;
766 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
784 data = (SetPreFilterCapMessage_data_t *)
data_ptr;
798 return data->pre_filter_cap;
820 data->pre_filter_cap = new_pre_filter_cap;
845 data_size =
sizeof(SetSADWindowSizeMessage_data_t);
848 data = (SetSADWindowSizeMessage_data_t *)
data_ptr;
850 data->sad_window_size = ini_sad_window_size;
852 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
858 data_size =
sizeof(SetSADWindowSizeMessage_data_t);
861 data = (SetSADWindowSizeMessage_data_t *)
data_ptr;
864 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
882 data = (SetSADWindowSizeMessage_data_t *)
data_ptr;
896 return data->sad_window_size;
918 data->sad_window_size = new_sad_window_size;
943 data_size =
sizeof(SetMinDisparityMessage_data_t);
946 data = (SetMinDisparityMessage_data_t *)
data_ptr;
948 data->min_disparity = ini_min_disparity;
950 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
956 data_size =
sizeof(SetMinDisparityMessage_data_t);
959 data = (SetMinDisparityMessage_data_t *)
data_ptr;
962 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
980 data = (SetMinDisparityMessage_data_t *)
data_ptr;
992 return data->min_disparity;
1012 data->min_disparity = new_min_disparity;
1037 data_size =
sizeof(SetNumDisparitiesMessage_data_t);
1040 data = (SetNumDisparitiesMessage_data_t *)
data_ptr;
1042 data->num_disparities = ini_num_disparities;
1044 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1050 data_size =
sizeof(SetNumDisparitiesMessage_data_t);
1053 data = (SetNumDisparitiesMessage_data_t *)
data_ptr;
1056 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1074 data = (SetNumDisparitiesMessage_data_t *)
data_ptr;
1088 return data->num_disparities;
1110 data->num_disparities = new_num_disparities;
1135 data_size =
sizeof(SetTextureThresholdMessage_data_t);
1138 data = (SetTextureThresholdMessage_data_t *)
data_ptr;
1140 data->texture_threshold = ini_texture_threshold;
1142 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1148 data_size =
sizeof(SetTextureThresholdMessage_data_t);
1151 data = (SetTextureThresholdMessage_data_t *)
data_ptr;
1154 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1172 data = (SetTextureThresholdMessage_data_t *)
data_ptr;
1187 return data->texture_threshold;
1210 data->texture_threshold = new_texture_threshold;
1235 data_size =
sizeof(SetUniquenessRatioMessage_data_t);
1238 data = (SetUniquenessRatioMessage_data_t *)
data_ptr;
1240 data->uniqueness_ratio = ini_uniqueness_ratio;
1242 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1248 data_size =
sizeof(SetUniquenessRatioMessage_data_t);
1251 data = (SetUniquenessRatioMessage_data_t *)
data_ptr;
1254 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1272 data = (SetUniquenessRatioMessage_data_t *)
data_ptr;
1288 return data->uniqueness_ratio;
1312 data->uniqueness_ratio = new_uniqueness_ratio;
1337 data_size =
sizeof(SetSpeckleWindowSizeMessage_data_t);
1340 data = (SetSpeckleWindowSizeMessage_data_t *)
data_ptr;
1342 data->speckle_window_size = ini_speckle_window_size;
1344 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1350 data_size =
sizeof(SetSpeckleWindowSizeMessage_data_t);
1353 data = (SetSpeckleWindowSizeMessage_data_t *)
data_ptr;
1356 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1374 data = (SetSpeckleWindowSizeMessage_data_t *)
data_ptr;
1388 return data->speckle_window_size;
1410 data->speckle_window_size = new_speckle_window_size;
1435 data_size =
sizeof(SetSpeckleRangeMessage_data_t);
1438 data = (SetSpeckleRangeMessage_data_t *)
data_ptr;
1440 data->speckle_range = ini_speckle_range;
1442 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1448 data_size =
sizeof(SetSpeckleRangeMessage_data_t);
1451 data = (SetSpeckleRangeMessage_data_t *)
data_ptr;
1454 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1472 data = (SetSpeckleRangeMessage_data_t *)
data_ptr;
1486 return data->speckle_range;
1508 data->speckle_range = new_speckle_range;
1533 data_size =
sizeof(SetTrySmallerWindowsMessage_data_t);
1536 data = (SetTrySmallerWindowsMessage_data_t *)
data_ptr;
1538 data->try_smaller_windows = ini_try_smaller_windows;
1540 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1546 data_size =
sizeof(SetTrySmallerWindowsMessage_data_t);
1549 data = (SetTrySmallerWindowsMessage_data_t *)
data_ptr;
1552 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1570 data = (SetTrySmallerWindowsMessage_data_t *)
data_ptr;
1585 return data->try_smaller_windows;
1608 data->try_smaller_windows = new_try_smaller_windows;
1636 const SetPreFilterCapMessage *m2 =
dynamic_cast<const SetPreFilterCapMessage *
>(message);
1640 const SetSADWindowSizeMessage *m3 =
dynamic_cast<const SetSADWindowSizeMessage *
>(message);
1644 const SetMinDisparityMessage *m4 =
dynamic_cast<const SetMinDisparityMessage *
>(message);
1648 const SetNumDisparitiesMessage *m5 =
dynamic_cast<const SetNumDisparitiesMessage *
>(message);
1652 const SetTextureThresholdMessage *m6 =
dynamic_cast<const SetTextureThresholdMessage *
>(message);
1656 const SetUniquenessRatioMessage *m7 =
dynamic_cast<const SetUniquenessRatioMessage *
>(message);
1660 const SetSpeckleWindowSizeMessage *m8 =
dynamic_cast<const SetSpeckleWindowSizeMessage *
>(message);
1664 const SetSpeckleRangeMessage *m9 =
dynamic_cast<const SetSpeckleRangeMessage *
>(message);
1668 const SetTrySmallerWindowsMessage *m10 =
dynamic_cast<const SetTrySmallerWindowsMessage *
>(message);
1669 if ( m10 != NULL ) {
1676 EXPORT_INTERFACE(OpenCVStereoParamsInterface)