在运行时更改bufferCount值

时间:2019-02-19 08:00:12

标签: javascript rxjs6

使用rxjs6

cv::Mat bgr_image;
UIImageToMat(image, bgr_image);
cv::Mat hsv_image;
cv::cvtColor(bgr_image, hsv_image, cv::COLOR_BGR2HSV);

cv::Mat lower_red_hue_range;
cv::Mat upper_red_hue_range;
cv::Mat allRedHue;

cv::inRange(hsv_image, cv::Scalar(0, 100, 100), cv::Scalar(10, 255, 255), lower_red_hue_range);
cv::inRange(hsv_image, cv::Scalar(160, 100, 100), cv::Scalar(179, 255, 255), upper_red_hue_range);
cv::addWeighted(lower_red_hue_range, 1.0, upper_red_hue_range, 1.0, 0.0, allRedHue);
Moments m = moments(allRedHue, true);
Point2f p = Point2f(m.m10/m.m00, m.m01/m.m00);
p == p?
dict = @{@"xPoint":[NSNumber numberWithFloat:p.x],@"yPoint":[NSNumber numberWithFloat:p.y]} :
dict = @{@"xPoint":[NSNumber numberWithFloat:0.0],@"yPoint":[NSNumber numberWithFloat:0.0]};

我想在运行时更改bufferSize而不重新创建流。有任何想法怎么做吗?

1 个答案:

答案 0 :(得分:0)

我创建了一个新的运算符,以将Observable配置为bufferCount。用法示例:

function testDynamicBuffer() {
  const source = interval(50)

  // initial buffer size is 4
  const bufferSource = new BehaviorSubject<number>(4)

  const bufferedSource = source
    .pipe(dynamicBufferCount(bufferSource))
    .subscribe(x => console.log(x))

  setTimeout(() => bufferSource.next(2), 1000)
  setTimeout(() => bufferSource.next(3), 1500)
  setTimeout(() => bufferSource.next(40), 1873)
  setTimeout(() => bufferSource.next(2), 4593)
  setTimeout(() => bufferSource.next(9), 8764)

  setTimeout(() => bufferedSource.unsubscribe(), 10764)
}

testDynamicBuffer()

https://github.com/kigorw/dynamicBufferCount