version 0.12
返回的json里新增元件框数据
This commit is contained in:
parent
ff3f886270
commit
a1da9df94d
36
img_prec.py
36
img_prec.py
@ -19,7 +19,10 @@ def generate_json(wires, components):
|
|||||||
"电阻箱": "RESISTOR_BOX",
|
"电阻箱": "RESISTOR_BOX",
|
||||||
"滑动变阻器": "VARIABLE_RESISTOR",
|
"滑动变阻器": "VARIABLE_RESISTOR",
|
||||||
"单刀双掷开关": "switch",
|
"单刀双掷开关": "switch",
|
||||||
"电源": "battery"
|
"电源": "BATTERY",
|
||||||
|
"电阻": "RESISTOR",
|
||||||
|
"黑盒电流表": "ammeter",
|
||||||
|
"螺线管": "solenoid"
|
||||||
}
|
}
|
||||||
|
|
||||||
for comp in components:
|
for comp in components:
|
||||||
@ -78,7 +81,7 @@ def generate_json(wires, components):
|
|||||||
elem["type"] = "seriesAmmeter"
|
elem["type"] = "seriesAmmeter"
|
||||||
elem["customLabel"] = "电压表"
|
elem["customLabel"] = "电压表"
|
||||||
elem["customDisplayFunction"] = "i => `${i.toFixed(2)} V`"
|
elem["customDisplayFunction"] = "i => `${i.toFixed(2)} V`"
|
||||||
elif label == "RESISTOR_BOX" or label == "VARIABLE_RESISTOR":
|
elif label == "RESISTOR_BOX" or label == "VARIABLE_RESISTOR" or label == "RESISTOR":
|
||||||
elem["type"] = "resistor"
|
elem["type"] = "resistor"
|
||||||
elem["resistorType"] = label
|
elem["resistorType"] = label
|
||||||
elem["resistance"] = 10
|
elem["resistance"] = 10
|
||||||
@ -86,6 +89,9 @@ def generate_json(wires, components):
|
|||||||
elem["voltage"] = 9
|
elem["voltage"] = 9
|
||||||
elem["batterType"] = "BATTERRY"
|
elem["batterType"] = "BATTERRY"
|
||||||
elem["internalResistance"] = 0.01
|
elem["internalResistance"] = 0.01
|
||||||
|
elif label == "resistor":
|
||||||
|
elem["resistorType"] = "RESISTOR"
|
||||||
|
elem["resistance"] = 1
|
||||||
elements.append(elem)
|
elements.append(elem)
|
||||||
element_count += 1
|
element_count += 1
|
||||||
|
|
||||||
@ -169,29 +175,32 @@ def visualize_wires_and_components(image, results, components):
|
|||||||
cv2.putText(img, "end", (end[0]+5, end[1]-5), cv2.FONT_HERSHEY_SIMPLEX, 0.4, (255, 0, 0), 1)
|
cv2.putText(img, "end", (end[0]+5, end[1]-5), cv2.FONT_HERSHEY_SIMPLEX, 0.4, (255, 0, 0), 1)
|
||||||
|
|
||||||
# ==== 画元件框 ====
|
# ==== 画元件框 ====
|
||||||
labels = {"微安电流表": "seriesAmmeter",
|
labels = {"微安电流表": "ammeter",
|
||||||
"待测表头": "seriesAmmeter",
|
"待测表头": "ammeter",
|
||||||
"电阻箱": "RESISTOR_BOX",
|
"电阻箱": "RESISTOR_BOX",
|
||||||
"滑动变阻器": "VARIABLE_RESISTOR",
|
"滑动变阻器": "VARIABLE_RESISTOR",
|
||||||
"单刀双掷开关": "switch",
|
"单刀双掷开关": "switch",
|
||||||
"电源": "BATTERY"
|
"电源": "BATTERY",
|
||||||
|
"电阻": "RESISTOR",
|
||||||
|
"黑盒电流表": "ammeter",
|
||||||
|
"螺线管": "solenoid"
|
||||||
}
|
}
|
||||||
for comp in components:
|
for comp in components:
|
||||||
label = labels[comp["label"]]
|
label = labels[comp["label"]]
|
||||||
x1, y1, x2, y2 = comp["bbox"]
|
x1, y1, x2, y2 = comp["bbox"]
|
||||||
|
|
||||||
cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2)
|
cv2.rectangle(img, (x1, y1), (x2, y2), (0, 128, 0), 2)
|
||||||
cv2.putText(img, label, (x1, y1 - 8), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 255, 0), 2)
|
cv2.putText(img, label, (x1, y1 - 8), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 128, 0), 2)
|
||||||
_, encode_img = cv2.imencode('.jpg', img)
|
_, encode_img = cv2.imencode('.jpg', img)
|
||||||
img_base64 = base64.b64encode(encode_img).decode('utf-8')
|
img_base64 = base64.b64encode(encode_img).decode('utf-8')
|
||||||
#cv2.imwrite('output.jpg', img)
|
# cv2.imwrite('output.jpg', img)
|
||||||
|
# cv2.namedWindow("Wires and Components", cv2.WINDOW_NORMAL)
|
||||||
|
# cv2.imshow("Wires and Components", img)
|
||||||
|
# cv2.waitKey(0)
|
||||||
|
# cv2.destroyAllWindows()
|
||||||
return img_base64
|
return img_base64
|
||||||
# 显示图像
|
# 显示图像
|
||||||
# resized = cv2.resize(img, (0, 0), fx=0.6, fy=0.6)
|
# resized = cv2.resize(img, (0, 0), fx=0.6, fy=0.6)
|
||||||
# cv2.namedWindow("Wires and Components", cv2.WINDOW_NORMAL)
|
|
||||||
# cv2.imshow("Wires and Components", resized)
|
|
||||||
# cv2.waitKey(0)
|
|
||||||
# cv2.destroyAllWindows()
|
|
||||||
|
|
||||||
|
|
||||||
def img_recognition(img):
|
def img_recognition(img):
|
||||||
@ -213,7 +222,8 @@ def img_recognition(img):
|
|||||||
request = {
|
request = {
|
||||||
"success": True,
|
"success": True,
|
||||||
"recognizedImage": f"data:image/jpeg;base64,{results_img}",
|
"recognizedImage": f"data:image/jpeg;base64,{results_img}",
|
||||||
"circuitData": results
|
"circuitData": results,
|
||||||
|
"components": elements
|
||||||
}
|
}
|
||||||
# with open('test.json', "w") as f:
|
# with open('test.json', "w") as f:
|
||||||
# json.dump(request, f, indent=2)
|
# json.dump(request, f, indent=2)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user