Files

206 lines
7.2 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import * as Blockly from 'blockly/core';
const CV_HUE = "f0a559";
export const cv_read_image = {
init: function () {
this.setColour(CV_HUE);
this.appendValueInput("FILE")
.setCheck(String)
.appendField(Blockly.Msg.MIXLY_CV_IMREAD);
this.setInputsInline(true);
this.setPreviousStatement(false);
this.setNextStatement(false);
this.setOutput(true);
}
};
export const cv_show_image = {
init: function () {
this.setColour(CV_HUE);
this.appendValueInput("FILE")
.appendField(Blockly.Msg.OLED_BITMAP);
this.appendValueInput('data')
.setCheck(String)
.appendField(Blockly.Msg.MIXLY_AipNlp_Topic_Title);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
}
}
export const cv_write_image = {
init: function () {
this.setColour(CV_HUE);
this.appendValueInput("FILE")
.appendField(Blockly.Msg.MIXLY_CV_IMWRITE);
this.appendValueInput('data')
.setCheck(String)
.appendField(Blockly.Msg.HTML_NAME);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
}
}
export const cv_waitkey = {
init: function () {
this.setColour(CV_HUE);
this.appendValueInput('data')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_DELAY);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MILLIS + Blockly.Msg.MIXLY_CV_OR_PRESS)
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_CV_WAITKEY_TOOLTIP)
}
}
export const cv_destroy_all = {
init: function () {
this.setColour(CV_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_CV_DESTROY_ALL)
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
}
}
export const cv_line_rect = {
init: function () {
this.setColour(CV_HUE);
this.appendValueInput("FILE")
.appendField(Blockly.Msg.MIXLY_MICROBIT_IMAGE);
var line_rect =
[[Blockly.Msg.MIXLY_CV_RECT, 'rectangle'], [Blockly.Msg.MIXLY_CV_LINE, 'line']];
this.appendValueInput('x1')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_DISPLAY_DRAW)
.appendField(new Blockly.FieldDropdown(line_rect), 'DIR')
.appendField(Blockly.Msg.MIXLY_CV_DRAWLINE_BEGIN + '(x1')
this.appendValueInput('y1')
.setCheck(Number)
.appendField(',y1');
this.appendValueInput('x2')
.setCheck(Number)
.appendField(') ' + Blockly.Msg.MIXLY_CV_DRAWLINE_END + '(x2');
this.appendValueInput('y2')
.setCheck(Number)
.appendField(',y2');
this.appendDummyInput()
.appendField(') ' + Blockly.Msg.MIXLY_CV_DRAWLINE_COLOR)
.appendField(new Blockly.FieldColour('#ff0000'), 'FIELDNAME');
this.appendValueInput('thick')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_CV_DRAWLINE_THICKNESS);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)
}
}
export const cv_text = {
init: function () {
this.setColour(CV_HUE);
this.appendValueInput("FILE")
.appendField(Blockly.Msg.MIXLY_MICROBIT_IMAGE);
var font =
[['SIMPLEX', 'SIMPLEX'], ['PLAIN', 'PLAIN'], ['DUPLEX', 'DUPLEX'], ['COMPLEX', 'COMPLEX'], ['COMPLEX_SMALL', 'COMPLEX_SMALL'], ['TRIPLEX', 'TRIPLEX'], ['SCRIPT_SIMPLEX', 'SCRIPT_SIMPLEX'], ['SCRIPT_COMPLEX', 'SCRIPT_COMPLEX'],];
this.appendValueInput('data')
.setCheck(String)
.appendField(Blockly.Msg.MIXLY_CV_DRAWTEXT);
this.appendValueInput('x1')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_CV_DRAWLINE_BEGIN + '(x1')
this.appendValueInput('y1')
.setCheck(Number)
.appendField(',y1');
this.appendDummyInput()
.appendField(') ' + Blockly.Msg.MIXLY_TURTLE_WRITE_FONT_NAME)
.appendField(new Blockly.FieldDropdown(font), 'font');
this.appendValueInput('size')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_TURTLE_WRITE_FONT_NUM);
this.appendDummyInput()
.appendField(') ' + Blockly.Msg.MIXLY_CV_DRAWLINE_COLOR)
.appendField(new Blockly.FieldColour('#ff0000'), 'FIELDNAME');
this.appendValueInput('thick')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_CV_DRAWLINE_THICKNESS);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_CV_DRAWLINE_RECT_TOOLTIP)
}
}
export const cv_face_classifier = {
init: function () {
this.setColour(CV_HUE);
this.appendValueInput("FILE")
.setCheck(String)
.appendField(Blockly.Msg.MIXLY_CV_FACE_CLASSIFIER);
this.setInputsInline(true);
this.setPreviousStatement(false);
this.setNextStatement(false);
this.setOutput(true);
}
};
export const cv_face_detect = {
init: function () {
this.setColour(CV_HUE);
this.appendValueInput("FILE")
.appendField(Blockly.Msg.MIXLY_MICROBIT_IMAGE);
this.appendValueInput("FACE")
.appendField(Blockly.Msg.MIXLY_CV_FACE_DETECT);
this.appendValueInput('SCALE')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_CV_FACE_DETECT_SCALE)
this.appendValueInput('NEIGHBOR')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR)
this.setInputsInline(true);
this.setPreviousStatement(false);
this.setNextStatement(false);
this.setOutput(true);
}
};
export const cv_face_detect_all = {
init: function () {
this.setColour(CV_HUE);
this.appendValueInput("FILE")
.appendField(Blockly.Msg.MIXLY_MICROBIT_IMAGE);
this.appendValueInput("FACE")
.appendField(Blockly.Msg.MIXLY_CV_FACE_DETECT);
this.appendValueInput('SCALE')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_CV_FACE_DETECT_SCALE)
this.appendValueInput('NEIGHBOR')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_CV_FACE_DETECT_NEIGHBOR)
this.appendValueInput('x1')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_CV_FACE_DETECT_RANGE)
.appendField(Blockly.Msg.blockpy_TUPLE_MIN)
this.appendValueInput('y1')
.setCheck(Number)
.appendField('×')
this.appendValueInput('x2')
.setCheck(Number)
.appendField(Blockly.Msg.blockpy_TUPLE_MAX)
this.appendValueInput('y2')
.setCheck(Number)
.appendField('×')
this.setInputsInline(true);
this.setPreviousStatement(false);
this.setNextStatement(false);
this.setOutput(true);
}
};