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";
106 OpenCVStereoParamsInterface::pre_filter_type()
const
116 OpenCVStereoParamsInterface::maxlenof_pre_filter_type()
const
126 OpenCVStereoParamsInterface::set_pre_filter_type(
const PreFilterType new_pre_filter_type)
128 data_changed |=
change_field(data->pre_filter_type, new_pre_filter_type);
138 OpenCVStereoParamsInterface::pre_filter_size()
const
140 return data->pre_filter_size;
148 OpenCVStereoParamsInterface::maxlenof_pre_filter_size()
const
160 OpenCVStereoParamsInterface::set_pre_filter_size(
const uint32_t new_pre_filter_size)
162 data_changed |=
change_field(data->pre_filter_size, new_pre_filter_size);
172 OpenCVStereoParamsInterface::pre_filter_cap()
const
174 return data->pre_filter_cap;
182 OpenCVStereoParamsInterface::maxlenof_pre_filter_cap()
const
194 OpenCVStereoParamsInterface::set_pre_filter_cap(
const uint32_t new_pre_filter_cap)
196 data_changed |=
change_field(data->pre_filter_cap, new_pre_filter_cap);
206 OpenCVStereoParamsInterface::sad_window_size()
const
208 return data->sad_window_size;
216 OpenCVStereoParamsInterface::maxlenof_sad_window_size()
const
228 OpenCVStereoParamsInterface::set_sad_window_size(
const uint32_t new_sad_window_size)
230 data_changed |=
change_field(data->sad_window_size, new_sad_window_size);
238 OpenCVStereoParamsInterface::min_disparity()
const
240 return data->min_disparity;
248 OpenCVStereoParamsInterface::maxlenof_min_disparity()
const
258 OpenCVStereoParamsInterface::set_min_disparity(
const int32_t new_min_disparity)
260 data_changed |=
change_field(data->min_disparity, new_min_disparity);
270 OpenCVStereoParamsInterface::num_disparities()
const
272 return data->num_disparities;
280 OpenCVStereoParamsInterface::maxlenof_num_disparities()
const
292 OpenCVStereoParamsInterface::set_num_disparities(
const uint32_t new_num_disparities)
294 data_changed |=
change_field(data->num_disparities, new_num_disparities);
305 OpenCVStereoParamsInterface::texture_threshold()
const
307 return data->texture_threshold;
315 OpenCVStereoParamsInterface::maxlenof_texture_threshold()
const
328 OpenCVStereoParamsInterface::set_texture_threshold(
const uint32_t new_texture_threshold)
330 data_changed |=
change_field(data->texture_threshold, new_texture_threshold);
342 OpenCVStereoParamsInterface::uniqueness_ratio()
const
344 return data->uniqueness_ratio;
352 OpenCVStereoParamsInterface::maxlenof_uniqueness_ratio()
const
366 OpenCVStereoParamsInterface::set_uniqueness_ratio(
const uint32_t new_uniqueness_ratio)
368 data_changed |=
change_field(data->uniqueness_ratio, new_uniqueness_ratio);
378 OpenCVStereoParamsInterface::speckle_window_size()
const
380 return data->speckle_window_size;
388 OpenCVStereoParamsInterface::maxlenof_speckle_window_size()
const
400 OpenCVStereoParamsInterface::set_speckle_window_size(
const uint32_t new_speckle_window_size)
402 data_changed |=
change_field(data->speckle_window_size, new_speckle_window_size);
412 OpenCVStereoParamsInterface::speckle_range()
const
414 return data->speckle_range;
422 OpenCVStereoParamsInterface::maxlenof_speckle_range()
const
434 OpenCVStereoParamsInterface::set_speckle_range(
const uint32_t new_speckle_range)
436 data_changed |=
change_field(data->speckle_range, new_speckle_range);
447 OpenCVStereoParamsInterface::is_try_smaller_windows()
const
449 return data->try_smaller_windows;
457 OpenCVStereoParamsInterface::maxlenof_try_smaller_windows()
const
470 OpenCVStereoParamsInterface::set_try_smaller_windows(
const bool new_try_smaller_windows)
472 data_changed |=
change_field(data->try_smaller_windows, new_try_smaller_windows);
477 OpenCVStereoParamsInterface::create_message(
const char *type)
const
479 if ( strncmp(
"SetPreFilterTypeMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
481 }
else if ( strncmp(
"SetPreFilterSizeMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
483 }
else if ( strncmp(
"SetPreFilterCapMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
485 }
else if ( strncmp(
"SetSADWindowSizeMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
487 }
else if ( strncmp(
"SetMinDisparityMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
489 }
else if ( strncmp(
"SetNumDisparitiesMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
491 }
else if ( strncmp(
"SetTextureThresholdMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
493 }
else if ( strncmp(
"SetUniquenessRatioMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
495 }
else if ( strncmp(
"SetSpeckleWindowSizeMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
497 }
else if ( strncmp(
"SetSpeckleRangeMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
499 }
else if ( strncmp(
"SetTrySmallerWindowsMessage", type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
503 "message type for this interface type.", type);
512 OpenCVStereoParamsInterface::copy_values(
const Interface *other)
517 type(), other->
type());
519 memcpy(data, oi->data,
sizeof(OpenCVStereoParamsInterface_data_t));
523 OpenCVStereoParamsInterface::enum_tostring(
const char *enumtype,
int val)
const
525 if (strcmp(enumtype,
"PreFilterType") == 0) {
542 OpenCVStereoParamsInterface::SetPreFilterTypeMessage::SetPreFilterTypeMessage(
const PreFilterType ini_pre_filter_type) :
Message(
"SetPreFilterTypeMessage")
544 data_size =
sizeof(SetPreFilterTypeMessage_data_t);
547 data = (SetPreFilterTypeMessage_data_t *)
data_ptr;
549 data->pre_filter_type = ini_pre_filter_type;
551 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
552 add_fieldinfo(
IFT_ENUM,
"pre_filter_type", 1, &data->pre_filter_type,
"PreFilterType", &enum_map_PreFilterType);
557 data_size =
sizeof(SetPreFilterTypeMessage_data_t);
560 data = (SetPreFilterTypeMessage_data_t *)
data_ptr;
563 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
564 add_fieldinfo(
IFT_ENUM,
"pre_filter_type", 1, &data->pre_filter_type,
"PreFilterType", &enum_map_PreFilterType);
581 data = (SetPreFilterTypeMessage_data_t *)
data_ptr;
613 change_field(data->pre_filter_type, new_pre_filter_type);
638 data_size =
sizeof(SetPreFilterSizeMessage_data_t);
641 data = (SetPreFilterSizeMessage_data_t *)
data_ptr;
643 data->pre_filter_size = ini_pre_filter_size;
645 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
651 data_size =
sizeof(SetPreFilterSizeMessage_data_t);
654 data = (SetPreFilterSizeMessage_data_t *)
data_ptr;
657 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
675 data = (SetPreFilterSizeMessage_data_t *)
data_ptr;
689 return data->pre_filter_size;
711 change_field(data->pre_filter_size, new_pre_filter_size);
736 data_size =
sizeof(SetPreFilterCapMessage_data_t);
739 data = (SetPreFilterCapMessage_data_t *)
data_ptr;
741 data->pre_filter_cap = ini_pre_filter_cap;
743 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
749 data_size =
sizeof(SetPreFilterCapMessage_data_t);
752 data = (SetPreFilterCapMessage_data_t *)
data_ptr;
755 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
773 data = (SetPreFilterCapMessage_data_t *)
data_ptr;
787 return data->pre_filter_cap;
834 data_size =
sizeof(SetSADWindowSizeMessage_data_t);
837 data = (SetSADWindowSizeMessage_data_t *)
data_ptr;
839 data->sad_window_size = ini_sad_window_size;
841 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
847 data_size =
sizeof(SetSADWindowSizeMessage_data_t);
850 data = (SetSADWindowSizeMessage_data_t *)
data_ptr;
853 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
871 data = (SetSADWindowSizeMessage_data_t *)
data_ptr;
885 return data->sad_window_size;
907 change_field(data->sad_window_size, new_sad_window_size);
932 data_size =
sizeof(SetMinDisparityMessage_data_t);
935 data = (SetMinDisparityMessage_data_t *)
data_ptr;
937 data->min_disparity = ini_min_disparity;
939 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
945 data_size =
sizeof(SetMinDisparityMessage_data_t);
948 data = (SetMinDisparityMessage_data_t *)
data_ptr;
951 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
969 data = (SetMinDisparityMessage_data_t *)
data_ptr;
981 return data->min_disparity;
1026 data_size =
sizeof(SetNumDisparitiesMessage_data_t);
1029 data = (SetNumDisparitiesMessage_data_t *)
data_ptr;
1031 data->num_disparities = ini_num_disparities;
1033 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1039 data_size =
sizeof(SetNumDisparitiesMessage_data_t);
1042 data = (SetNumDisparitiesMessage_data_t *)
data_ptr;
1045 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1063 data = (SetNumDisparitiesMessage_data_t *)
data_ptr;
1077 return data->num_disparities;
1099 change_field(data->num_disparities, new_num_disparities);
1124 data_size =
sizeof(SetTextureThresholdMessage_data_t);
1127 data = (SetTextureThresholdMessage_data_t *)
data_ptr;
1129 data->texture_threshold = ini_texture_threshold;
1131 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1137 data_size =
sizeof(SetTextureThresholdMessage_data_t);
1140 data = (SetTextureThresholdMessage_data_t *)
data_ptr;
1143 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1161 data = (SetTextureThresholdMessage_data_t *)
data_ptr;
1176 return data->texture_threshold;
1199 change_field(data->texture_threshold, new_texture_threshold);
1224 data_size =
sizeof(SetUniquenessRatioMessage_data_t);
1227 data = (SetUniquenessRatioMessage_data_t *)
data_ptr;
1229 data->uniqueness_ratio = ini_uniqueness_ratio;
1231 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1237 data_size =
sizeof(SetUniquenessRatioMessage_data_t);
1240 data = (SetUniquenessRatioMessage_data_t *)
data_ptr;
1243 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1261 data = (SetUniquenessRatioMessage_data_t *)
data_ptr;
1277 return data->uniqueness_ratio;
1301 change_field(data->uniqueness_ratio, new_uniqueness_ratio);
1326 data_size =
sizeof(SetSpeckleWindowSizeMessage_data_t);
1329 data = (SetSpeckleWindowSizeMessage_data_t *)
data_ptr;
1331 data->speckle_window_size = ini_speckle_window_size;
1333 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1339 data_size =
sizeof(SetSpeckleWindowSizeMessage_data_t);
1342 data = (SetSpeckleWindowSizeMessage_data_t *)
data_ptr;
1345 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1363 data = (SetSpeckleWindowSizeMessage_data_t *)
data_ptr;
1377 return data->speckle_window_size;
1399 change_field(data->speckle_window_size, new_speckle_window_size);
1424 data_size =
sizeof(SetSpeckleRangeMessage_data_t);
1427 data = (SetSpeckleRangeMessage_data_t *)
data_ptr;
1429 data->speckle_range = ini_speckle_range;
1431 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1437 data_size =
sizeof(SetSpeckleRangeMessage_data_t);
1440 data = (SetSpeckleRangeMessage_data_t *)
data_ptr;
1443 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1461 data = (SetSpeckleRangeMessage_data_t *)
data_ptr;
1475 return data->speckle_range;
1522 data_size =
sizeof(SetTrySmallerWindowsMessage_data_t);
1525 data = (SetTrySmallerWindowsMessage_data_t *)
data_ptr;
1527 data->try_smaller_windows = ini_try_smaller_windows;
1529 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1535 data_size =
sizeof(SetTrySmallerWindowsMessage_data_t);
1538 data = (SetTrySmallerWindowsMessage_data_t *)
data_ptr;
1541 enum_map_PreFilterType[(int)
PFT_XSOBEL] =
"PFT_XSOBEL";
1559 data = (SetTrySmallerWindowsMessage_data_t *)
data_ptr;
1574 return data->try_smaller_windows;
1597 change_field(data->try_smaller_windows, new_try_smaller_windows);
1658 if ( m10 != NULL ) {