板载智能修改

This commit is contained in:
Irene-Maxine
2025-11-01 09:32:17 +08:00
parent 95c4068009
commit 9e27c59346
4 changed files with 297 additions and 48 deletions

View File

@@ -390,7 +390,9 @@ export const CONVERT_IMAGE_TO_JPG = {
.appendField(new Blockly.FieldDropdown([ .appendField(new Blockly.FieldDropdown([
["JPG" + Blockly.Msg.MIXLY_SD_DATA,"0"], ["JPG" + Blockly.Msg.MIXLY_SD_DATA,"0"],
[Blockly.Msg.MIXLY_JPG_base64_CODE + Blockly.Msg.MIXLY_SD_DATA ,"1"] [Blockly.Msg.MIXLY_JPG_base64_CODE + Blockly.Msg.MIXLY_SD_DATA ,"1"]
]),"kind") ]),"kind");
this.appendValueInput('quality')
.appendField(Blockly.Msg.MIXLY_IMAGE_QUALITY);
this.setOutput(true); this.setOutput(true);
this.setInputsInline(true); this.setInputsInline(true);
} }
@@ -426,6 +428,23 @@ export const SCREEN_SHOW_CAM_GRAPH_SHOOT = {
} }
}; };
export const SCREEN_SHOW_CAM_GRAPH_SHOOT_LOCATION = {
init: function () {
this.setColour(DISPLAY_ONBOARD_HUE);
this.appendValueInput("SUB")
.appendField(Blockly.Msg.OLEDDISPLAY + Blockly.Msg.MIXLY_MICROBIT_IMAGE)
this.appendValueInput("x")
.appendField(Blockly.Msg.TURTLE_POS + "x");
this.appendValueInput("y")
.appendField("y")
this.appendValueInput('boolean')
.appendField( Blockly.Msg.MIXLY_synchronize);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
}
};
export const SCREEN_DISPLAY_IMAGE = { export const SCREEN_DISPLAY_IMAGE = {
init: function () { init: function () {
this.setColour(DISPLAY_ONBOARD_HUE); this.setColour(DISPLAY_ONBOARD_HUE);
@@ -448,6 +467,52 @@ export const SCREEN_DISPLAY_IMAGE = {
} }
}; };
export const SCREEN_DISPLAY_IMAGE_LOCATION = {
init: function () {
this.setColour(DISPLAY_ONBOARD_HUE);
this.appendValueInput('direct')
.appendField(Blockly.Msg.OLED_BITMAP)
.appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH);
this.appendValueInput("x")
.appendField(Blockly.Msg.TURTLE_POS + "x");
this.appendValueInput("y")
.appendField("y")
this.appendDummyInput('')
.appendField(Blockly.Msg.MIXLY_ROTATION_ANGLE)
.appendField(new Blockly.FieldDropdown([
['0','0'],
['90','90'],
['180','180'],
['270','270']
]),'angle');
this.appendValueInput('boolean')
.appendField( Blockly.Msg.MIXLY_synchronize);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
}
};
export const GET_SCREEN_IMAGE_SIZE = {
init: function () {
this.setColour(DISPLAY_ONBOARD_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_SCREENSHOT + Blockly.Msg.MIXLY_MICROBIT_monitor)
this.appendValueInput("x")
.appendField("x")
this.appendValueInput("y")
.appendField("y")
this.appendValueInput("w")
.appendField("w")
this.appendValueInput("h")
.appendField("h")
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_set_of + Blockly.Msg.MIXLY_MICROBIT_IMAGE)
this.setOutput(true);
this.setInputsInline(true);
}
};
export const GET_SCREEN_IMAGE = { export const GET_SCREEN_IMAGE = {
init: function () { init: function () {
this.setColour(DISPLAY_ONBOARD_HUE); this.setColour(DISPLAY_ONBOARD_HUE);
@@ -471,10 +536,23 @@ export const AI_CAMERA_INIT = {
[Blockly.Msg.MIXLY_COLOR_RECOGNTITION, "ColorDetector"], [Blockly.Msg.MIXLY_COLOR_RECOGNTITION, "ColorDetector"],
[Blockly.Msg.MIXLY_CAT + Blockly.Msg.MIXLY_RECOGNITION, "CatDetector"], [Blockly.Msg.MIXLY_CAT + Blockly.Msg.MIXLY_RECOGNITION, "CatDetector"],
[Blockly.Msg.MIXLY_HUMAN + Blockly.Msg.MIXLY_RECOGNITION, "HumanDetector"], [Blockly.Msg.MIXLY_HUMAN + Blockly.Msg.MIXLY_RECOGNITION, "HumanDetector"],
[Blockly.Msg.MIXLY_FACE_CLASSIFIER, "FaceDetector"] [Blockly.Msg.MIXLY_FACE_CLASSIFIER, "FaceDetector"],
[Blockly.Msg.MIXLY_PICTURE_CLASSIFY,"ImageNet"]
]), "kind"); ]), "kind");
this.appendValueInput("WIDTH")
.appendField(Blockly.Msg.MIXLY_WIDTH);
this.appendValueInput("HEIGHT")
.appendField(Blockly.Msg.MIXLY_HEIGHT);
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const MODEL_INIT_WIDTH = {
init: function(){
this.setColour(AI_LOCAL_GRAPH_HUE);
this.appendDummyInput("") this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_WIDTH)
.appendField(new Blockly.FieldDropdown([ .appendField(new Blockly.FieldDropdown([
["240px","240"], ["240px","240"],
["320px","320"], ["320px","320"],
@@ -484,8 +562,15 @@ export const AI_CAMERA_INIT = {
["480px","480"], ["480px","480"],
["160px","160"] ["160px","160"]
]),"width"); ]),"width");
this.setOutput(true);
this.setInputsInline(true);
}
};
export const MODEL_INIT_HEIGHT = {
init: function(){
this.setColour(AI_LOCAL_GRAPH_HUE);
this.appendDummyInput("") this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_HEIGHT)
.appendField(new Blockly.FieldDropdown([ .appendField(new Blockly.FieldDropdown([
["240px","240"], ["240px","240"],
["320px","320"], ["320px","320"],
@@ -497,8 +582,7 @@ export const AI_CAMERA_INIT = {
["120px","120"] ["120px","120"]
]),"height"); ]),"height");
this.setInputsInline(true); this.setInputsInline(true);
this.setPreviousStatement(true, null); this.setOutput(true);
this.setNextStatement(true, null);
} }
}; };
@@ -511,29 +595,10 @@ export const AI_CAMERA_INIT_FACERECOGNIZE = {
this.appendDummyInput("") this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO) .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)
.appendField(Blockly.Msg.MIXLY_AipFace); .appendField(Blockly.Msg.MIXLY_AipFace);
this.appendDummyInput("") this.appendValueInput("WIDTH")
.appendField(Blockly.Msg.MIXLY_WIDTH) .appendField(Blockly.Msg.MIXLY_WIDTH);
.appendField(new Blockly.FieldDropdown([ this.appendValueInput("HEIGHT")
["240px","240"], .appendField(Blockly.Msg.MIXLY_HEIGHT);
["320px","320"],
["128px","128"],
["96px","96"],
["640px","640"],
["480px","480"],
["160px","160"]
]),"width");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_HEIGHT)
.appendField(new Blockly.FieldDropdown([
["240px","240"],
["320px","320"],
["128px","128"],
["96px","96"],
["480px","480"],
["320px","320"],
["240px","240"],
["120px","120"]
]),"height");
this.appendValueInput("PATH") this.appendValueInput("PATH")
.appendField(Blockly.Msg.PATH_OF_FACE_DATABASE); .appendField(Blockly.Msg.PATH_OF_FACE_DATABASE);
this.setInputsInline(true); this.setInputsInline(true);
@@ -616,7 +681,8 @@ export const GET_NO_RECOGNITION = {
[Blockly.Msg.HTML_COLOUR, "ColorDetector"], [Blockly.Msg.HTML_COLOUR, "ColorDetector"],
[Blockly.Msg.MIXLY_CAT, "CatDetector"], [Blockly.Msg.MIXLY_CAT, "CatDetector"],
[Blockly.Msg.MIXLY_HUMAN, "HumanDetector"], [Blockly.Msg.MIXLY_HUMAN, "HumanDetector"],
[Blockly.Msg.MIXLY_FACE, "FaceDetector"] [Blockly.Msg.MIXLY_FACE, "FaceDetector"],
[Blockly.Msg.MIXLY_PICTURE_CLASSIFY,"ImageNet"]
]), "kind"); ]), "kind");
this.appendDummyInput("") this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_DE + Blockly.Msg.OLED_STRING); .appendField(Blockly.Msg.MIXLY_DE + Blockly.Msg.OLED_STRING);
@@ -639,7 +705,8 @@ export const GET_NO_CAT_OR_FACE_RECOGNITION = {
[Blockly.Msg.HTML_COLOUR, "ColorDetector"], [Blockly.Msg.HTML_COLOUR, "ColorDetector"],
[Blockly.Msg.MIXLY_CAT, "CatDetector"], [Blockly.Msg.MIXLY_CAT, "CatDetector"],
[Blockly.Msg.MIXLY_HUMAN, "HumanDetector"], [Blockly.Msg.MIXLY_HUMAN, "HumanDetector"],
[Blockly.Msg.MIXLY_FACE, "FaceDetector"] [Blockly.Msg.MIXLY_FACE, "FaceDetector"],
[Blockly.Msg.MIXLY_PICTURE_CLASSIFY,"ImageNet"]
]), "kind"); ]), "kind");
this.appendDummyInput("") this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_DE + Blockly.Msg.MIXLY_CONFIDENCE_DEGREE); .appendField(Blockly.Msg.MIXLY_DE + Blockly.Msg.MIXLY_CONFIDENCE_DEGREE);
@@ -851,6 +918,20 @@ export const GET_QR_CODE_RECOGNITION_DATA = {
} }
}; };
export const GET_PICTURE_RECOGNITION_DATA = {
init: function () {
this.setColour(AI_LOCAL_GRAPH_HUE);
this.appendValueInput('SUB')
.setCheck("var");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_GET_PICTURE_CLASSIFY_RESULT);
this.appendValueInput('boolean')
.appendField( Blockly.Msg.MIXLY_synchronize);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const GET_COLOR_DETECTION_NUM = { export const GET_COLOR_DETECTION_NUM = {
init: function () { init: function () {
this.setColour(AI_LOCAL_GRAPH_HUE); this.setColour(AI_LOCAL_GRAPH_HUE);
@@ -1174,7 +1255,8 @@ export const AI_CAMERA_INIT_SIMPLE = {
[Blockly.Msg.MIXLY_CAT + Blockly.Msg.MIXLY_RECOGNITION, "CatDetector"], [Blockly.Msg.MIXLY_CAT + Blockly.Msg.MIXLY_RECOGNITION, "CatDetector"],
[Blockly.Msg.MIXLY_HUMAN + Blockly.Msg.MIXLY_RECOGNITION, "HumanDetector"], [Blockly.Msg.MIXLY_HUMAN + Blockly.Msg.MIXLY_RECOGNITION, "HumanDetector"],
[Blockly.Msg.MIXLY_FACE_CLASSIFIER, "FaceDetector"], [Blockly.Msg.MIXLY_FACE_CLASSIFIER, "FaceDetector"],
[Blockly.Msg.MIXLY_AipFace,"FaceRecognizer"] [Blockly.Msg.MIXLY_AipFace,"FaceRecognizer"],
[Blockly.Msg.MIXLY_PICTURE_CLASSIFY,"ImageNet"]
]), "kind"); ]), "kind");
this.setInputsInline(true); this.setInputsInline(true);
this.setPreviousStatement(true, null); this.setPreviousStatement(true, null);

View File

@@ -177,7 +177,8 @@ export const CONVERT_IMAGE_TO_JPG = function (_, generator) {
generator.definitions_['camera_import_Image'] = 'from camera import Image'; generator.definitions_['camera_import_Image'] = 'from camera import Image';
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var kind = this.getFieldValue('kind'); var kind = this.getFieldValue('kind');
var code = 'Image.convert(' + sub + ', formats=' + kind + ')'; var q = generator.valueToCode(this, 'quality', generator.ORDER_ATOMIC);
var code = 'Image.convert(' + sub + ', formats=' + kind + ', quality='+ q +')';
return [code, generator.ORDER_ATOMIC]; return [code, generator.ORDER_ATOMIC];
} }
@@ -198,6 +199,17 @@ export const SCREEN_SHOW_CAM_GRAPH_SHOOT = function (_, generator) {
return code; return code;
} }
export const SCREEN_SHOW_CAM_GRAPH_SHOOT_LOCATION = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft";
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC);
var y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC);
var bool = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC);
var code = 'onboard_tft.display(' + sub +',x='+x+',x='+y+', sync='+ bool +')\n';
return code;
}
export const SCREEN_DISPLAY_IMAGE = function (_, generator) { export const SCREEN_DISPLAY_IMAGE = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]; var version = Boards.getSelectedBoardKey().split(':')[2];
generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft";
@@ -208,6 +220,18 @@ export const SCREEN_DISPLAY_IMAGE = function (_, generator) {
return code; return code;
} }
export const SCREEN_DISPLAY_IMAGE_LOCATION = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft";
var direct = generator.valueToCode(this, 'direct', generator.ORDER_ATOMIC);
var x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC);
var y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC);
var a = this.getFieldValue('angle');
var bool = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC);
var code = 'onboard_tft.display(' + direct +',x='+x+',x='+y + ',rotation=' + a + ',sync='+ bool + ')\n';
return code;
}
export const GET_SCREEN_IMAGE = function (_, generator) { export const GET_SCREEN_IMAGE = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]; var version = Boards.getSelectedBoardKey().split(':')[2];
generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft";
@@ -215,22 +239,45 @@ export const GET_SCREEN_IMAGE = function (_, generator) {
return [code, generator.ORDER_ATOMIC]; return [code, generator.ORDER_ATOMIC];
} }
export const GET_SCREEN_IMAGE_SIZE = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft";
var x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC);
var y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC);
var w = generator.valueToCode(this, 'w', generator.ORDER_ATOMIC);
var h = generator.valueToCode(this, 'h', generator.ORDER_ATOMIC);
var code = 'screenshot(x='+x+',y='+y+',w='+w+',h='+h+')';
return [code, generator.ORDER_ATOMIC];
}
export const AI_CAMERA_INIT = function (_, generator) { export const AI_CAMERA_INIT = function (_, generator) {
generator.definitions_['import_esp_dl'] = 'import esp_dl'; generator.definitions_['import_esp_dl'] = 'import esp_dl';
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var cmd = this.getFieldValue('kind'); var cmd = this.getFieldValue('kind');
var width = this.getFieldValue('width'); var width = generator.valueToCode(this, 'WIDTH', generator.ORDER_ATOMIC);
var height = this.getFieldValue('height'); var height = generator.valueToCode(this, 'HEIGHT', generator.ORDER_ATOMIC);
var code = sub +' = esp_dl.'+cmd + '(width='+width+', height='+height+')\n'; var code = sub +' = esp_dl.'+cmd + '(width='+width+', height='+height+')\n';
return code; return code;
} }
export const MODEL_INIT_WIDTH = function (_, generator) {
var width = this.getFieldValue('width');
var code = width;
return [code, generator.ORDER_ATOMIC];
}
export const MODEL_INIT_HEIGHT = function (_, generator) {
var height = this.getFieldValue('height');
var code = height;
return [code, generator.ORDER_ATOMIC];
}
export const AI_CAMERA_INIT_FACERECOGNIZE = function (_, generator) { export const AI_CAMERA_INIT_FACERECOGNIZE = function (_, generator) {
generator.definitions_['import_esp_dl'] = 'import esp_dl'; generator.definitions_['import_esp_dl'] = 'import esp_dl';
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var path = generator.valueToCode(this, 'PATH', generator.ORDER_ATOMIC); var path = generator.valueToCode(this, 'PATH', generator.ORDER_ATOMIC);
var width = this.getFieldValue('width'); var width = generator.valueToCode(this, 'WIDTH', generator.ORDER_ATOMIC);
var height = this.getFieldValue('height'); var height = generator.valueToCode(this, 'HEIGHT', generator.ORDER_ATOMIC);
var code = sub +' = esp_dl.FaceRecognizer(width='+width+', height='+height+', db_path='+ path +')\n'; var code = sub +' = esp_dl.FaceRecognizer(width='+width+', height='+height+', db_path='+ path +')\n';
return code; return code;
} }
@@ -374,6 +421,14 @@ export const GET_QR_CODE_RECOGNITION_DATA = function (_, generator) {
return [code, generator.ORDER_ATOMIC]; return [code, generator.ORDER_ATOMIC];
} }
export const GET_PICTURE_RECOGNITION_DATA = function (_, generator) {
generator.definitions_['import_esp_dl'] = 'import esp_dl'
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var bool = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC);
var code = 'esp_dl.simple_run('+ sub + ', camera, "data", color=0xF800, sync='+bool+')';
return [code, generator.ORDER_ATOMIC];
}
export const GET_COLOR_DETECTION_NUM = function (_, generator) { export const GET_COLOR_DETECTION_NUM = function (_, generator) {
generator.definitions_['import_esp_dl'] = 'import esp_dl' generator.definitions_['import_esp_dl'] = 'import esp_dl'
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
@@ -425,7 +480,7 @@ export const GET_FACE_DETECTION_NAME = function (_, generator) {
generator.definitions_['import_esp_dl'] = 'import esp_dl' generator.definitions_['import_esp_dl'] = 'import esp_dl'
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var bool = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC); var bool = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC);
var code = 'esp_dl.simple_run('+ sub + ', "person", color=0xF800, sync='+bool+')["name"]\n'; var code = 'esp_dl.simple_run('+ sub + ', camera, "person", "name", color=0xF800, sync='+bool+')';
return [code, generator.ORDER_ATOMIC]; return [code, generator.ORDER_ATOMIC];
} }

View File

@@ -2456,11 +2456,19 @@
</value> </value>
</block> </block>
<block type="AI_CAMERA_INIT_SIMPLE"> <block type="AI_CAMERA_INIT_SIMPLE">
<value name="SUB"> <value name="SUB">
<shadow type="variables_get"> <shadow type="variables_get">
<field name="VAR">Model</field> <field name="VAR">Model</field>
</shadow> </shadow>
</value> </value>
<value name="WIDTH">
<shadow type="MODEL_INIT_WIDTH">
</shadow>
</value>
<value name="HEIGHT">
<shadow type="MODEL_INIT_HEIGHT ">
</shadow>
</value>
</block> </block>
<block type="Register_color_recognition_fixed_SIMPLE"> <block type="Register_color_recognition_fixed_SIMPLE">
<value name="SUB"> <value name="SUB">
@@ -2499,6 +2507,17 @@
</shadow> </shadow>
</value> </value>
</block> </block>
<block type="GET_PICTURE_RECOGNITION_DATA">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">Model</field>
</shadow>
</value>
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="GET_COLOR_DETECTION_NUM"> <block type="GET_COLOR_DETECTION_NUM">
<value name="SUB"> <value name="SUB">
<shadow type="variables_get"> <shadow type="variables_get">
@@ -2685,6 +2704,11 @@
<field name="VAR">image</field> <field name="VAR">image</field>
</shadow> </shadow>
</value> </value>
<value name="quality">
<shadow type="math_number">
<field name="NUM">90</field>
</shadow>
</value>
</block> </block>
<block type="GET_PICTURE_DATA_WHS"> <block type="GET_PICTURE_DATA_WHS">
<value name="SUB"> <value name="SUB">
@@ -2734,12 +2758,60 @@
</shadow> </shadow>
</value> </value>
</block> </block>
<block type="SCREEN_DISPLAY_IMAGE_LOCATION">
<value name="direct">
<shadow type="text">
<field name="TEXT">mixly.jpg</field>
</shadow>
</value>
<value name="x">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="y">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="variables_set"> <block type="variables_set">
<field name="VAR">image</field> <field name="VAR">image</field>
<value name="VALUE"> <value name="VALUE">
<block type="GET_SCREEN_IMAGE"></block> <block type="GET_SCREEN_IMAGE"></block>
</value> </value>
</block> </block>
<block type="variables_set">
<field name="VAR">image</field>
<value name="VALUE">
<block type="GET_SCREEN_IMAGE_SIZE">
<value name="x">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="y">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="w">
<shadow type="math_number">
<field name="NUM">240</field>
</shadow>
</value>
<value name="h">
<shadow type="math_number">
<field name="NUM">240</field>
</shadow>
</value>
</block>
</value>
</block>
<block type="SCREEN_SHOW_CAM_GRAPH_SHOOT"> <block type="SCREEN_SHOW_CAM_GRAPH_SHOOT">
<value name="SUB"> <value name="SUB">
<shadow type="variables_get"> <shadow type="variables_get">
@@ -2751,12 +2823,41 @@
</shadow> </shadow>
</value> </value>
</block> </block>
<block type="SCREEN_SHOW_CAM_GRAPH_SHOOT_LOCATION">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">image</field>
</shadow>
</value>
<value name="x">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="y">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="AI_CAMERA_INIT"> <block type="AI_CAMERA_INIT">
<value name="SUB"> <value name="SUB">
<shadow type="variables_get"> <shadow type="variables_get">
<field name="VAR">Model</field> <field name="VAR">Model</field>
</shadow> </shadow>
</value> </value>
<value name="WIDTH">
<shadow type="MODEL_INIT_WIDTH">
</shadow>
</value>
<value name="HEIGHT">
<shadow type="MODEL_INIT_HEIGHT">
</shadow>
</value>
</block> </block>
<block type="AI_CAMERA_INIT_FACERECOGNIZE"> <block type="AI_CAMERA_INIT_FACERECOGNIZE">
<value name="SUB"> <value name="SUB">
@@ -2764,6 +2865,14 @@
<field name="VAR">Model</field> <field name="VAR">Model</field>
</shadow> </shadow>
</value> </value>
<value name="WIDTH">
<shadow type="MODEL_INIT_WIDTH">
</shadow>
</value>
<value name="HEIGHT">
<shadow type="MODEL_INIT_HEIGHT">
</shadow>
</value>
<value name="PATH"> <value name="PATH">
<shadow type="text"> <shadow type="text">
<field name="TEXT">face.db</field> <field name="TEXT">face.db</field>

View File

@@ -4242,4 +4242,7 @@ ZhHans.print_the_contents_of_the_face_database = '打印人脸数据库的内容
ZhHans.MIXLY_FACE_ID = '面容ID'; ZhHans.MIXLY_FACE_ID = '面容ID';
ZhHans.MILXY_FACE_SIMILARITY = '面容相似度'; ZhHans.MILXY_FACE_SIMILARITY = '面容相似度';
ZhHans.MIXLY_FACE_NAME = '面容姓名'; ZhHans.MIXLY_FACE_NAME = '面容姓名';
ZhHans.MIXLY_PICTURE_CLASSIFY = '图像分类';
ZhHans.MIXLY_GET_PICTURE_CLASSIFY_RESULT = '获取图像分类结果';
ZhHans.MIXLY_SCREENSHOT = '截取';
})(); })();