使用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而不重新创建流。有任何想法怎么做吗?
答案 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()