File size: 854 Bytes
5db43ff
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import cv2
import numpy as np
import os

class TemporalVarianceHeatmap:
    def __init__(self,window_size=10):
        self.window_size = window_size
        self.frames=[]

    def __call__(self, img):
        self.frames.append(cv2.cvtColor(img, cv2.COLOR_BGR2GRAY).astype(np.float32))
        if len(self.frames)>self.window_size:
            self.frames.pop(0)
        stack = np.stack(self.frames, axis=0)  # Shape: (window_size, H, W)
        variance = np.var(stack, axis=0)  # Per-pixel temporal variance
        #print(np.max(variance), np.min(variance))
        # Normalize and apply colormap
        var_norm = cv2.normalize(variance, None, 0, 255, cv2.NORM_MINMAX)
        #var_norm=np.clip(var_norm,0,1)*255
        var_uint8 = var_norm.astype(np.uint8)
        heatmap = cv2.applyColorMap(var_uint8, cv2.COLORMAP_JET)
        return heatmap