transitData.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. //
  2. // Created by zx on 23-11-28.
  3. //
  4. #include "transitData.h"
  5. TransitData::TransitData() {
  6. }
  7. void TransitData::setImage(cv::Mat image, int id) {
  8. if (id < 0 || id >= NUM_) return;
  9. mutex_.lock();
  10. image_[id] = image.clone();
  11. mutex_.unlock();
  12. }
  13. void TransitData::setImageCL(cv::Mat &image, int id) {
  14. if (id < 0 || id >= NUM_) return;
  15. mutex_.lock();
  16. imageCL_[id] = image.clone();
  17. mutex_.unlock();
  18. }
  19. void TransitData::setMask(std::vector<cv::Point> mask, int id) {
  20. if (id < 0 || id >= NUM_) return;
  21. mutex_.lock();
  22. mask_[id] = mask;
  23. mutex_.unlock();
  24. }
  25. void TransitData::setMeasureInfo(MeasureInfo info) {
  26. mutex_.lock();
  27. measureInfo_ = info;
  28. mutex_.unlock();
  29. }
  30. bool TransitData::getImage(cv::Mat &image, int id, float timeout) {
  31. if (id < 0 || id >= NUM_) return false;
  32. if (image_[id].timeout(timeout))
  33. return false;
  34. mutex_.lock();
  35. image = image_[id]();
  36. mutex_.unlock();
  37. return true;
  38. }
  39. bool TransitData::getImageCL(cv::Mat &image, int id, float timeout) {
  40. if (id < 0 || id >= NUM_) return false;
  41. if (imageCL_[id].timeout(timeout))
  42. return false;
  43. mutex_.lock();
  44. image = imageCL_[id]().clone();
  45. mutex_.unlock();
  46. return true;
  47. }
  48. bool TransitData::getMask(std::vector<cv::Point> &mask, int id, float timeout) {
  49. if (id < 0 || id >= NUM_) return false;
  50. if (mask_[id].timeout(timeout))
  51. return false;
  52. mask = mask_[id]();
  53. return true;
  54. }
  55. bool TransitData::getMeasureInfo(MeasureInfo &info, float timeout) {
  56. if (measureInfo_.timeout(timeout))
  57. return false;
  58. mutex_.lock();
  59. info = measureInfo_();
  60. mutex_.unlock();
  61. return true;
  62. }