                  cv2.imwrite(imgfile, image)  # pylint: disable=no-member
                  logger.debug("Generated preview for GUI: '%s'", img)
              if self._args.preview:
                  logger.debug("Generating preview for display: '%s'", name)
                  with self._lock:
                      self._preview_buffer[name] = image
                  logger.debug("Generated preview for display: '%s'", name)
          except Exception as err:
              logging.error("could not preview sample")
              raise err
          logger.debug("Updated preview: (name: %s)", name)
 
</s> remove     @classmethod
    def _create_resizable_window(cls, name: str, image_shape: tuple) -> None:
        """ Create a resizable OpenCV window to hold the preview image.

        Parameters
        ----------
        name: str
            The name to display in the window header and for window identification
        shape: tuple
            The (`rows`, `columns`, `channels`) of the image to be displayed
        """
        logger.debug("Creating named window '%s' for image shape %s", name, image_shape)
        height, width = image_shape[:2]
        cv2.namedWindow(name, cv2.WINDOW_GUI_EXPANDED)
        cv2.resizeWindow(name, width, height)

    def _do_preview(self, window_created: bool) -> bool:
        """" Display an image preview in a resizable window

        Parameters
        ----------
        window_created: bool
            ``True`` if a preview window has been created otherwise ``False``

        Returns
        -------
        bool
            ``True`` if a preview window has been created otherwise ``False``
        """
        with self._lock:
            for name, image in self._preview_buffer.items():
                if not window_created:
                    self._create_resizable_window(name, image.shape)
                cv2.imshow(name, image)  # pylint: disable=no-member
            window_created = bool(self._preview_buffer) if not window_created else window_created
        return window_created

 </s> add  </s> remove                     self._do_preview(window_created)
                    cv_key = cv2.waitKey(1000)  # pylint: disable=no-member
                else:
                    cv_key = None
 </s> add                     self._preview.display_preview() </s> remove         if self._scaling != 1.0:
            new_size = int(images[0].shape[1] * self._scaling)
            images = [self._resize_sample(side, image, new_size) for image in images]
 </s> add  </s> remove         parent_flags = dict(mask_toggle="_toggle_preview_mask", update="_refresh_preview")
 </s> add         parent_flags = dict(mask_toggle="request_mask_toggle", update="request_refresh") </s> remove                     print("\n")
                    logger.info("Refresh preview requested")

                setattr(self, parent_flags[trigger], True)
 </s> add                     print("\n")  # Let log print on different line from loss output
                    logger.info("Refresh preview requested...")
                getattr(self._preview, parent_flags[trigger])()
                self._preview.add_image(name, image)
                  cv2.imwrite(imgfile, image)  # pylint: disable=no-member
                  logger.debug("Generated preview for GUI: '%s'", img)
              if self._args.preview:
                  logger.debug("Generating preview for display: '%s'", name)
                self._preview.add_image(name, image)
                self._preview.add_image(name, image)
                  logger.debug("Generated preview for display: '%s'", name)
          except Exception as err:
              logging.error("could not preview sample")
              raise err
          logger.debug("Updated preview: (name: %s)", name)
keep keep keep keep replace replace keep keep keep keep keep
 Live Preview - Replace cv2 with matplotlib viewer 
scripts/train.py