You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.4 KiB
48 lines
1.4 KiB
# flake8: noqa
|
|
# pylint: disable=W
|
|
|
|
#!/usr/bin/env python
|
|
import numpy as np
|
|
import cv2
|
|
from time import time, sleep
|
|
|
|
H, W = (604*2//6, 964*2//6)
|
|
# H, W = (604, 964)
|
|
|
|
cam_bufs = np.zeros((3,H,W,3), dtype=np.uint8)
|
|
hist_bufs = np.zeros((3,H,200,3), dtype=np.uint8)
|
|
|
|
if __name__ == '__main__':
|
|
import zmq
|
|
context = zmq.Context()
|
|
socket = context.socket(zmq.PULL)
|
|
socket.bind("tcp://192.168.3.4:7768")
|
|
while True:
|
|
try:
|
|
message = socket.recv()
|
|
except Exception as ex:
|
|
print(ex)
|
|
message = b"123"
|
|
|
|
dat = np.frombuffer(message, dtype=np.uint8)
|
|
cam_id = (dat[0] + 1) % 3
|
|
# import pdb; pdb.set_trace()
|
|
b = dat[::3].reshape(H, W)
|
|
g = dat[1::3].reshape(H, W)
|
|
r = dat[2::3].reshape(H, W)
|
|
cam_bufs[cam_id] = cv2.merge((r, g, b))
|
|
cam_bufs[cam_id]= cv2.cvtColor(cam_bufs[cam_id], cv2.COLOR_RGB2BGR)
|
|
|
|
hist = cv2.calcHist([cv2.cvtColor(cam_bufs[cam_id], cv2.COLOR_BGR2GRAY)],[0],None,[32],[0,256])
|
|
hist = (H*hist/hist.max()).astype(np.uint8)
|
|
hist_bufs[cam_id] = 0
|
|
for i,bb in enumerate(hist):
|
|
hist_bufs[cam_id, H-bb[0]:,i*(200//32):(i+1)*(200//32), :] = (222,222,222)
|
|
|
|
out = cam_bufs.reshape((3*H,W,3))
|
|
hist_bufs_out = hist_bufs.reshape((3*H,200,3))
|
|
out = np.hstack([out, hist_bufs_out])
|
|
cv2.imshow('RGB', out)
|
|
cv2.waitKey(55)
|
|
#dat.tofile('/tmp/c3rgb.img')
|
|
#cv2.imwrite('/tmp/c3rgb.png', out)
|
|
|