def mapUMatWithPillow(mat:UMat, transform) -> UMat:
img = Image.fromarray(array(mat))
return UMat(array(transform(img)))
def cv2VideoInfo(cap):
props = [cv2.CAP_PROP_FPS, cv2.CAP_PROP_FRAME_COUNT, cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT]
return tuple(int(cap.get(p)) for p in props) 这两个属于 OpenCV 可复用操作,
mapUMatWithPillow 负责把 UMat 用处理 Image 的程序处理cv2VideoInfo 可以拿到 (fps, count, width, height) 信息(如果要 (w,h)
size 则是 cv2VideoInfo(cap)[2:] 还有
key_color 颜色模糊匹配的:def isColorNearTo(key_color, key_thres, color):然后就没啥好说的了,VideoCapture 和 VideoWriter 都是 routine。
diff = map(lambda c: abs(c[0] - c[1]), zip(color, key_color) )
return sum(diff) < key_thres
Forwarded from Catten Linger
过段日子把公司的事情弄好了我就腾几天时间出来继续研究 GUI 显示技术了。。
Forwarded from Catten Linger
不是,是类似 Chrome 的 DOM 下面那层 compositor 和 raster
Forwarded from Catten Linger
我看了 Chrome 下面那层觉得现在的应用技术这么扭曲,真的是被 HTML 拖累了
Forwarded from Ghost Flying
cc 核 blink 都是 chromium 的 top level module 吧