yet a little more faster

pull/3471/head
kallaballa 3 years ago
parent 92857d6ba2
commit 79852e83c2
  1. 8
      src/tetra/tetra-demo.cpp

@ -57,18 +57,20 @@ void blitFrameBufferToScreen() {
void glow(cv::UMat &frameBuffer, int ksize = WIDTH / 85 % 2 == 0 ? WIDTH / 85 + 1 : WIDTH / 85) { void glow(cv::UMat &frameBuffer, int ksize = WIDTH / 85 % 2 == 0 ? WIDTH / 85 + 1 : WIDTH / 85) {
static cv::UMat mask; static cv::UMat mask;
cv::bitwise_not(frameBuffer, frameBuffer);
//prepare the mask on a 50% resized version for some extra performance (especially when blurring) //prepare the mask on a 50% resized version for some extra performance (especially when blurring)
cv::resize(frameBuffer, mask, cv::Size(), 0.5, 0.5); cv::resize(frameBuffer, mask, cv::Size(), 0.5, 0.5);
cv::boxFilter(mask, mask, -1, cv::Size(ksize, ksize), cv::Point(-1,-1), true, cv::BORDER_CONSTANT); cv::boxFilter(mask, mask, -1, cv::Size(ksize, ksize), cv::Point(-1,-1), true, cv::BORDER_REPLICATE);
cv::bitwise_not(mask, mask);
mask.assignTo(mask, CV_16U); mask.assignTo(mask, CV_16U);
cv::resize(mask, mask, cv::Size(WIDTH, HEIGHT)); cv::resize(mask, mask, cv::Size(WIDTH, HEIGHT));
cv::bitwise_not(frameBuffer, frameBuffer);
frameBuffer.assignTo(frameBuffer, CV_16U); frameBuffer.assignTo(frameBuffer, CV_16U);
cv::multiply(mask, frameBuffer, mask); cv::multiply(mask, frameBuffer, mask);
cv::divide(mask, cv::Scalar::all(255.0), mask); cv::divide(mask, cv::Scalar::all(255.0), mask);
mask.assignTo(mask, CV_8U); mask.assignTo(mask, CV_8U);
cv::bitwise_not(mask, frameBuffer); cv::bitwise_not(mask, frameBuffer);
} }

Loading…
Cancel
Save