diff --git "a/\350\247\206\351\242\221\345\233\276\347\211\207\345\216\273\346\260\264\345\215\260" "b/\350\247\206\351\242\221\345\233\276\347\211\207\345\216\273\346\260\264\345\215\260" new file mode 100644 index 0000000000000000000000000000000000000000..f1581e24ae6cbe0cb8d119550e7b3c9e846a4c50 --- /dev/null +++ "b/\350\247\206\351\242\221\345\233\276\347\211\207\345\216\273\346\260\264\345\215\260" @@ -0,0 +1,21 @@ +while (capture.read(frame)) { + double shift = index++ % repeat * offset; + int left = view.width() - width - (int) shift; + Rect rect = new Rect(left, 0, width, height); + Mat roi = view.submat(rect); + frame.copyTo(roi); + Mat logo = maskLogo.submat(rect), mosaic = maskMosaic.submat(rect); + for (Map.Entry entry : wrapperLogo.entrySet()) { + Rect wrapper = maskService.wrapper(rect, entry.getValue()); + if (null == wrapper) continue; + Imgproc.rectangle(frame, wrapper, new Scalar(0, 255, 0)); + Mat mat = frame.submat(wrapper), image = mat.clone(); + Core.absdiff(image, sa, image); + Core.divide(image, sb, image); + image.copyTo(mat, logo.submat(wrapper)); + watermarkService.detach(frame.submat(wrapper), logo.submat(wrapper), null); + } + writer.write(frame); + gui.imshow(cvService.bufferedImage(frame)); + gui.repaint(); +}