来自 python 上的热成像摄像机(网络摄像机)的流,连接错误

stream from thermal camera (ip camera) on python , connection error

我想从热像仪流式传输,通常它会将其帧导出为灰度帧 热像仪是 IP 摄像机,我尝试了不同的代码和包装但没有输出。 当我稍微更改代码以从 USB 摄像头查看时,它正常工作,所以请提供任何帮助。 这是我试过的代码:

import sys
sys.path.append('C:\Python27\Lib\site-packages')
import Tkinter as tk
import cv2
from PIL import Image, ImageTk
i=0

window = tk.Tk()
window.title('thermal image')
var = tk.IntVar()
width, height = 800, 600
cap = cv2.VideoCapture(0)
cap.open("http://169.254.110.119/")

left_label = tk.Label(window)
left_label.pack(side="left")
right_label = tk.Label(window)
right_label.pack(side="right")

def show_frame():
    _, frame = cap.read()
    print frame
    if frame != None:
        frame = cv2.flip(frame, 1)
        img = Image.fromarray(frame)
        imgtk = ImageTk.PhotoImage(image=img)
        left_label.imgtk = imgtk
        left_label.configure(image=imgtk)
        left_label.after(10, show_frame)

show_frame()
window.mainloop()

我认为代码中没有抓取来自网站的图片,对我有用的是

img_requested = requests.get(url)
img_arr = np.array(bytearray(img_requested.content), dtype=np.uint8)
frame = cv2.imdecode(img_arr, -1)

在那里你会得到框架(颜色picures/video)。请记住,你需要将请求和 numpy 导入为 np。

重要的是,如果您使用 IP 网络摄像头,请不要忘记写“/shot.jpg” 在 url 的末尾,像这样:'http://190.160.0.0:8080/shot.jpg',以便它有效地抓取图像。