我想从热像仪流式传输,通常将其帧导出为灰度帧 热像仪是一台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()
答案 0 :(得分:0)
我认为代码中没有抓住来自网站的图像,对我有用的是
img_requested = requests.get(url)
img_arr = np.array(bytearray(img_requested.content), dtype=np.uint8)
frame = cv2.imdecode(img_arr, -1)
然后您将获得帧(彩色图片/视频)。请记住,您需要将请求和numpy导入为np。
重要的是,如果您使用IP网络摄像头,请不要忘记编写“ /shot.jpg” 在网址末尾,例如:“ http://190.160.0.0:8080/shot.jpg”,以便它有效地捕获图像。