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)
 | |
| 
 |