小编ata*_*nel的帖子

在python opencv中通过网络发送实时视频帧

我正在尝试将我用相机捕获的实时视频帧发送到服务器并处理它们.我是用于图像处理的opencv和用于该语言的python.这是我的代码

client_cv.py

import cv2
import numpy as np
import socket
import sys
import pickle
cap=cv2.VideoCapture(0)
clientsocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
clientsocket.connect(('localhost',8089))
while True:
    ret,frame=cap.read()
    print sys.getsizeof(frame)
    print frame
    clientsocket.send(pickle.dumps(frame))
Run Code Online (Sandbox Code Playgroud)

server_cv.py

import socket
import sys
import cv2
import pickle
import numpy as np
HOST=''
PORT=8089

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print 'Socket created'

s.bind((HOST,PORT))
print 'Socket bind complete'
s.listen(10)
print 'Socket now listening'

conn,addr=s.accept()

while True:
    data=conn.recv(80)
    print sys.getsizeof(data)
    frame=pickle.loads(data)
    print frame
    cv2.imshow('frame',frame)
Run Code Online (Sandbox Code Playgroud)

这段代码给了我文件结束错误,这是合乎逻辑的,因为数据总是不停地进入服务器而pickle不知道何时完成.我在互联网上的搜索让我使用泡菜,但它到目前为止还没有用.

注意:我设置conn.recv为80,因为这是我说的时候得到的数字print sys.getsizeof(frame).

python opencv numpy

15
推荐指数
3
解决办法
3万
查看次数

如何将plot语句放在if语句中

我想在价格上绘制权益曲线,将该策略与简单的买入并持有进行比较。为了使图表有用,权益曲线可以从初始权益开始,或者与图表上的第一个价格一致,或者根本没有权益曲线,具体取决于手动输入。

使用下面的代码,我得到这个:

  • 第 xx 行:无法在本地范围内使用“plot”。

  • 第 xx 行:无法在本地范围内使用“plot”。

equitycurvetype = input(defval="No", title='Equity Curve Type', options=["No","Yes","Yes same start"])
if equitycurvetype == "Yes" 
    plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)  
if equitycurvetype == "Yes same start" 
    plot(strategy.equity * close[bar_index]/strategy.initial_capital, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
Run Code Online (Sandbox Code Playgroud)

pine-script

8
推荐指数
1
解决办法
2万
查看次数

标签 统计

numpy ×1

opencv ×1

pine-script ×1

python ×1