【问题标题】:How to integrate OpenCV webcam with Django and React?如何将 OpenCV 网络摄像头与 Django 和 React 集成?
【发布时间】:2021-07-03 19:26:21
【问题描述】:

我有一个使用开源 Dynamsoft API 和 OpenCV 实现的条形码阅读器。

现在我需要将它与 Django 集成并在 React 中显示在我的网站上。
我不知道该怎么做,我尝试将代码传递给我的 views.py 但不知道接下来我应该做什么。
这是我的条形码读取代码:

import cv2
from dbr import *
import time
reader = BarcodeReader()
def text_results_callback_func(frame_id, t_results, user_data):
        print(frame_id)
        for result in t_results:
            text_result = TextResult(result)
            print("Barcode Format : ")
            print(text_result.barcode_format_string)
            print("Barcode Text : ")
            print(text_result.barcode_text)
            print("Exception : ")
            print(text_result.exception)
            print("-------------")

def get_time():
    localtime = time.localtime()
    capturetime = time.strftime("%Y%m%d%H%M%S", localtime)
    return capturetime

def read_barcode():
    video_width = 0
    video_height = 0
    
    vc = cv2.VideoCapture(0)
    video_width  = vc.get(cv2.CAP_PROP_FRAME_WIDTH)
    video_height = vc.get(cv2.CAP_PROP_FRAME_HEIGHT)
    vc.set(3, video_width)
    vc.set(4, video_height) 

    stride = 0
    if vc.isOpened():  
        rval, frame = vc.read()
        stride = frame.strides[0]
    else:
        return
    windowName = "Barcode Reader"
    parameters = reader.init_frame_decoding_parameters()
    parameters.max_queue_length = 30
    parameters.max_result_queue_length = 30
    parameters.width = video_width
    parameters.height = video_height
    parameters.stride = stride
    parameters.image_pixel_format = EnumImagePixelFormat.IPF_RGB_888
    parameters.region_top = 0
    parameters.region_bottom = 100
    parameters.region_left = 0
    parameters.region_right = 100
    parameters.region_measured_by_percentage = 1
    parameters.threshold = 0.01
    parameters.fps = 0
    parameters.auto_filter = 1

    reader.start_video_mode(parameters, text_results_callback_func)

    while True:
        cv2.imshow(windowName, frame)
        rval, frame = vc.read()
        if rval == False:
            break
        
        try:
            ret = reader.append_video_frame(frame)
        except:
            pass

        key = cv2.waitKey(1)
        if key == ord('q'):
            break

    reader.stop_video_mode()
    cv2.destroyWindow(windowName)

print("-------------------start------------------------")

reader.init_license("***************************")
read_barcode()

【问题讨论】:

    标签: python reactjs django opencv


    【解决方案1】:

    我认为你需要使用JS版本的Dynamsoft Barcode Reader来使用网页中的相机扫描条形码:https://www.dynamsoft.com/barcode-reader/sdk-javascript/

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-18
    • 2012-06-16
    • 2012-12-20
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多